我正在尝试向我的应用程序添加“提醒”功能,并让用户在“每天提醒我”、“每周提醒我”等选项之间进行选择。
所以我刚刚创建了一个警报:
Intent notificationIntent = new Intent(this, BQBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, notificationIntent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis() + 24HOURS,
24HOURS,
pendingIntent);
到目前为止,一切都很好。但是如果用户重启手机会发生什么?重新启动时将删除所有警报。我已经有一个 BootBroadcastReveicer 来重新启动警报,但是我要在重新启动后将警报周期设置为什么?
假设用户将警报设置为“1 天后提醒我”。然后将闹钟设置为 24 小时。但是用户在 23 小时后重新启动了他的手机。然后我的 BootBroadcastReceiver 在 24 小时内设置另一个警报。但我需要它在 1 小时内完成!
我该如何解决这个问题?我是否必须不断检查警报还剩多少时间,并不断将其写入我的 sharedPreferences,这样我才能在重新启动后重新创建剩余时间?好像不是什么好办法。
有任何想法吗?