我正在开发一款应该每15天重新出现的应用,我的应用正常运行,但如果手机重新启动会发生什么,我正在使用广播管理器重新启动活动。但有没有办法让闹钟保持相同的值,例如如果手机在上一次事件发生3天后重新启动,则下一次警报应在12天内触发。
我还没有看到这个确切的问题,人们通常会问我已经完成的广播接收器。有什么指针吗?
将报警时间存储在文件中是个好主意吗?但那么AlarmManager.INTERVAL_DAY*14
会发生什么?我的示例报警管理器如下:
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY*15, pi);
答案 0 :(得分:0)
您需要将值保存在SharedPreferences中,并使用修改过的警报重新启动应用程序。
我会以某个间隔保存值,并检测手机关机(使用广播)
答案 1 :(得分:0)
重新启动设备后,系统会清除“是”警报。从android docs
开始此类提供对系统警报服务的访问。这些允许您安排应用程序在将来的某个时间运行。当警报响起时,系统会广播已为其注册的Intent,如果目标应用程序尚未运行,则会自动启动它。设备处于睡眠状态时会保留已注册的警报(如果设备在此期间关闭,可以选择将其唤醒),但如果关闭并重新启动则会清除设备。
您可以注册android.intent.action.BOOT_COMPLETED
接收器并重新安排闹钟。您可以将时间存储在共享偏好或数据库中。