我正在构建一个提醒应用程序,其中一次,每周,每月提醒,我们通知用户的提醒在到期日和时间。提醒可以由用户随时更新,以更新提醒时间或完全删除提醒。我想出了解决这个问题的两种方法。
第二种方法看起来很干净,但我们该如何处理由警报触发的服务在为下一次提醒排定新警报之前被系统杀死的情况?
编辑看起来就像如果系统为了内存而关闭服务,它将重新创建服务。这是否意味着在每次运行时依靠服务来安排警报是安全的?
编辑2我意识到,每当设备重新启动时,安卓就会杀死任何警报。这使方法2成为更好的解决方案。我现在已经实现了。
发布于 2019-09-17 14:20:01
需要以完全相同的方式创建挂起的意图,以取消已经设置的警报。如果希望在某个时间激活单个警报,则可以在设置新警报时取消先前的警报。
设置警报器使用:
Intent myIntent = new Intent(getApplicationContext(), SessionReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC, now.getTimeInMillis(), pendingIntent);取消警报使用:
AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Intent myIntent = new Intent(getApplicationContext(), SessionReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), 1, myIntent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.cancel(pendingIntent);https://stackoverflow.com/questions/11393473
复制相似问题