當我不申明 cancel 時,AlarmManager 能很好的運行。但是當我申明cancel時,也不能取消。
Calendar c= Calendar.getInstance();
c.set(Calendar.HOUR_OF_DAY, 0);
c.set(Calendar.MINUTE, 37);
c.set(Calendar.SECOND, 0);
Toast.makeText(this, c.getTime().toString(), Toast.LENGTH_LONG).show();
intent = new Intent(TestAlarm.this, TestAlarmService.class);
pi = PendingIntent.getService(TestAlarm.this, 1, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi);
cancel 代碼:
c.add(Calendar.HOUR_OF_DAY, 0);
c.add(Calendar.MINUTE, 38);
c.add(Calendar.SECOND, 0);
PendingIntent pi1=PendingIntent.getService(TestAlarm.this, 1, intent, 0);
AlarmManager am1 = (AlarmManager) getSystemService(ALARM_SERVICE);
//stopService(intent);
am1.cancel(pi);
現在我想開啟 AlarmManager,在 12:37 響鈴,然後在一兩分鐘內取消。但是當我使用 Cancel代碼,AlarmManager 不能取消。 什麼原因啊?
只要pengdingIntent一致,就可以通過alarmmanager取消;你可以參考http://bbs.csdn.net/topics/390425777這裡的代碼;我已經實現了。