3

当我第一次运行我的应用程序时,我的闹钟启动了,而且效果很好。

Intent intent = new Intent(this, Kill_Task.class);  
PendingIntent pendingIntent = PendingIntent.getBroadcast(
                   this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);  

AlarmManager objAlarmManager = 
     (AlarmManager) getSystemService(Context.ALARM_SERVICE);  
objAlarmManager.setRepeating(
     AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000, pendingIntent);

现在我的闹钟在后台继续,我必须关掉手机。当我打开手机时,我的警报后台处理没有开始。

为什么是这样?

4

1 回答 1

1

1)您的警报每秒重复您定义的待处理意图对象。AlarmManager.setRepeating(...
2)取消/停止您必须调用的警报objAlarmManager.cancel(pendingIntent);。与您定义的待处理意图pendingIntent匹配(相同的类,相同的操作......除了没有考虑比较的额外数据......请参阅IntenFilter以了解更多关于意图如何匹配另一个
3)然后取消挂起的意图本身pendingIntent.cancel();,以确保挂起的意图不可用。

于 2011-08-19T17:57:46.623 回答