我试图停止警报并检查它是否停止,但它总是返回 true 意味着警报正在工作。我尝试根据链接中的答案停止警报https://stackoverflow.com/a/17616299/1226882但这对我不起作用。
请参考下面的代码
-
启动警报
public static void startSchedulerAlaram(Context ctx) {
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
if (calendar.compareTo(Calendar.getInstance()) <= 0)
calendar.add(Calendar.DATE, 1);
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(ctx, Alaram_Receiver.class);
intent.setAction(Utility.SCHEDULE_ACTION);
PendingIntent pi = PendingIntent.getBroadcast(ctx, 1, intent,0);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
calendar.getTimeInMillis(),AlarmManager.INTERVAL_DAY, pi);
log("Scheduler Alarm", "Started");
}
-
停止报警
public static void stopSchedulerAlaram(Context ctx) {
Intent intent = new Intent(ctx, Alaram_Receiver.class);
intent.setAction(Utility.SCHEDULE_ACTION);
PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, 1,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
log("Scheduler Alarm", "Stopped");
}
-
检查报警
public static boolean checkSchedulerAlaram(Context ctx) {
boolean alarmUp = (PendingIntent.getBroadcast(ctx, 1, new Intent(ctx,Alaram_Receiver.class).setAction(Utility.SCHEDULE_ACTION),
PendingIntent.FLAG_NO_CREATE) != null);
return alarmUp;
}
你必须通过different id for set alarm
PendingIntent.getBroadcast(ctx, id, intent,PendingIntent.FLAG_UPDATE_CURRENT);
For cancel alarm you have pass same
idthat you used for set
.
PendingIntent pendingIntent = PendingIntent.getBroadcast(ctx, id,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) ctx
.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(pendingIntent);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)