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

首先是创建一个重复的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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值