我知道警报管理器已经有问题和解决方案,我已经搜索了很多,但我面临同样的问题。
我的问题是我每次都添加多个具有唯一 ID 的警报并使用相同的 ID 取消它们。所有警报在添加和删除时都可以正常工作,但警报会在不规则的时间间隔后继续响起。
这是我设置警报的代码。
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(getApplicationContext(), AlarmSer.class);
next = myRandom.nextInt();
PendingIntent pendingIntent =
PendingIntent.getService(getApplicationContext(),next, i, 0);
am.set(AlarmManager.RTC, firstWake, pendingIntent);
取消alarm.values
next 和 alarmReqCode 的代码对于特定警报是相同的。
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(getApplicationContext(), AlarmSer.class);
alarmReqCode=Integer.parseInt(cursor.getString(cursor.getColumnIndexOrThrow(
TodoDbAdapter.ALARMCODE)));
PendingIntent pendingIntent=
PendingIntent.getService(getApplicationContext(),alarmReqCode, i, 0);
am.cancel(pendingIntent);
在LogCat我得到这个:
03-19 11:43:03.475: V/AlarmManager(21088): waitForAlarm result :4
03-19 11:43:03.480: V/AlarmManager(21088): trigger ELAPSED_REALTIME_WAKEUP or RTC_WAKEUP