
我喜欢给用户启动和停止闹钟的选项.
这意味着我必须检查是否已经设置了闹钟.
我发现一些代码告诉我是否已经设置了闹钟:
Intent I = new Intent(getApplicationContext(),AlarmReceiver.class);PendingIntent P = PendingIntent.getbroadcast(getApplicationContext(),I,PendingIntent.FLAG_NO_CREATE);found = (P!=null);
如果闹钟已经设置,我取消它,但如果没有设置,那么我设置它(如切换)
问题是这只有一次.上述代码首次检查现有的报警
将返回null,表示无报警,但在返回指针后取消报警
到了一些东西,但是闹钟没有运行.
这里是设置闹钟的代码
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);Intent I = new Intent(getApplicationContext(),PendingIntent.FLAG_CANCEL_CURRENT);am.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),60000,P);
这里是取消闹钟的代码:
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);Intent I = new Intent(getApplicationContext(),PendingIntent.FLAG_CANCEL_CURRENT);am.cancel(P);
取消闹钟后,我可以重新设置一个消息,让它处于待处理状态.
解决方法 取消AlarmManager时,请勿使用具有FLAG_CANCEL_CURRENT标志的PendingIntent.取而代之的是在取消警报后明确取消PendingIntent:
am = (AlarmManager) getSystemService(getApplicationContext().ALARM_SERVICE);Intent i = new Intent(getApplicationContext(),AlarmReceiver.class);PendingIntent p = PendingIntent.getbroadcast(getApplicationContext(),i,0);am.cancel(p);p.cancel();总结
以上是内存溢出为你收集整理的Android AlarmManager设置和重置闹钟时出现问题全部内容,希望文章能够帮你解决Android AlarmManager设置和重置闹钟时出现问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)