Android AlarmManager设置和重置闹钟的问题

我使用闹钟从服务器获取数据。 我想让用户select启动和停止闹钟。 这意味着我必须检查,看看是否已经设置了警报。 我发现一些代码告诉我,如果警报已经设置:

Intent I = new Intent(getApplicationContext(),AlarmReceiver.class); PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_NO_CREATE); found = (P!=null); 

如果警报已经设置我取消它,但如果没有设置,然后我把它(如切换)

问题是这个作品只有一次。 第一次上面的代码检查现有的警报将返回空指示没有警报,但是当我取消警报后,一旦它返回一个指针的东西,但报警没有运行。

这里是设置闹钟的代码

 am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE); Intent I = new Intent(getApplicationContext(),AlarmReceiver.class); PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT); am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 60000, P); 

这里是取消闹钟的代码:

 am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE); Intent I = new Intent(getApplicationContext(),AlarmReceiver.class); PendingIntent P = PendingIntent.getBroadcast(getApplicationContext(), 0, I, PendingIntent.FLAG_CANCEL_CURRENT); am.cancel(P); 

取消警报后,我是否需要重置某些内容才能使PendingIntent消失。

Solutions Collecting From Web of "Android AlarmManager设置和重置闹钟的问题"