我代码是这样写的:public class AlarmA extends Activity {

ImageButton alarmImageButton;
AlarmManager alarmManager;
Calendar currentTime = Calendar.getInstance(); public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.alarm);

alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
alarmImageButton = (ImageButton)findViewById(R.id.imageButton);
alarmImageButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
new TimePickerDialog(AlarmA.this, 0,
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
Intent intent = new Intent(AlarmA.this,AlarmActivity.class);
PendingIntent pendingIntent = PendingIntent.getActivity(AlarmA.this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(AlarmA.this, "Successful, the alarm time is   " + hourOfDay + " : " + minute, Toast.LENGTH_SHORT).show();
}
}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime.get(Calendar.MINUTE), true).show();
}
});
}
}
只要设置的闹钟时间到,就会触发Aclock.class里面的事件,可是就是不知道哪里出了问题,只要把时间向前调,就会直接触发。

解决方案 »

  1.   

    alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);这句话是不是要加个判断条件,比如repeattime,没有设置触发事件的时间,,,
      

  2.   

    看下这篇贴子http://blog.csdn.net/androidstudio/article/details/17895115
      

  3.   

    我试过了下,不行啊,它是设定延迟时间,而我的是要读取TimePickerDialog里Calendar设定的时间
      

  4.   

    alarmManager好像只能读取系统时间吧,,,