您的位置:首页 > 其它

如何判断一个alarm是否已经被创建

2014-11-20 14:07 926 查看
首先是创建一个重复的Alarm:

long nextMillis = System.currentTimeMillis() + 1000;

AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);

Intent intent = new Intent(context, CoreService.class);

intent.setAction(CoreService.ACTION_SLIENCE_ALARM_BACK);

PendingIntent pendIntent = PendingIntent.getService(context,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, nextMillis, 1000, pendIntent);

然后如果出现多个地方可能会去设置这个alarm的时候,去判断下这个alarm的pendingintent是否已经被创建,来判断是否需要再次来设置这个alarm(ps:有的手机在你设置同一个alarm的时候覆盖设置会有个系统toast)。

boolean
alarmUp
=
(PendingIntent.getBroadcast(context.getApplicationContext(), 1,intent, PendingIntent.FLAG_NO_CREATE) != null);

这个就是来判断这个alarm 的pendingintent是否被创建。这个是不能用来判断这个alarm是被cancel过还是被set过的。

FLAG_NO_CREAT能用来处理这个的原因:

The key here is the
FLAG_NO_CREATE
which
as described in the javadoc:
if
the described PendingIntent **does not** already exists, then simply return null
(instead of creating a new one)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: