j2e*_*nue 5 android alarmmanager android-intent android-pendingintent
我有以下代码,它只是运行一个警报管理器:
public void runAlarm(){
Intent intent = new Intent(context, MyReceiver.class);
intent.setAction(ACTION_TIMEOUT);
PendingIntent alarmIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
setTimeOutAlarm(TIMEOUT_MINUTES,alarmIntent);
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
alarmMgr.setExact(AlarmManager.RTC,
Calendar.getInstance().getTimeInMillis() + 3*60*1000, alarmIntent);
}
Run Code Online (Sandbox Code Playgroud)
效果很好。我的问题是关于待定意图标志:PendingIntent.FLAG_CANCEL_CURRENT
如果我运行这个方法两次,它真的会取消alarmManager中已经存在的其他待处理意图吗?它怎么知道不取消它?我只是想确保我不会通过使用这个标志造成任何泄漏。我的意图是,我可以多次运行此代码,并且它将继续取消已发送到 AlarmManager 实例的先前挂起的 Intent。
但是每次我运行此代码时,当我使用此 adb 命令检查时,警报计数就会增加一:
adb shell dumpsys alarm | grep com.your.package
Run Code Online (Sandbox Code Playgroud)
所以看来alarmManager也许没有被取消。
| 归档时间: |
|
| 查看次数: |
1843 次 |
| 最近记录: |