您好我正在开发一个应用程序,我在其中使用 AlarmManager
问题
当我在特定日期和时间使用警报管理器设置待处理意图时,它的工作正常但假设我在日期 30-05-2011 和时间 10:00 AM 设置警报时间,并假设当前时间是日期 30-05-2011 和时间 09:上午 50 点,现在在创建待处理的意图后,我关闭了我的设备,在上午 10:01 之后我启动了我的设备,我希望收到上午 10:00 警报的通知,但我没有收到任何想法,我如何在切换后收到通知在我的手机上
您好我正在开发一个应用程序,我在其中使用 AlarmManager
当我在特定日期和时间使用警报管理器设置待处理意图时,它的工作正常但假设我在日期 30-05-2011 和时间 10:00 AM 设置警报时间,并假设当前时间是日期 30-05-2011 和时间 09:上午 50 点,现在在创建待处理的意图后,我关闭了我的设备,在上午 10:01 之后我启动了我的设备,我希望收到上午 10:00 警报的通知,但我没有收到任何想法,我如何在切换后收到通知在我的手机上
通过AlarmManager,您只能在设备处于睡眠状态时唤醒您的设备。
为此,请使用 setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation) 或 set(...)
使用 RTC_WAKEUP 或 ELAPSED_REALTIME_WAKEUP
但它不适用于关闭的设备。因此,您应该考虑将您的闹钟以及您的应用程序上次启动的时间放在数据库中,并计算自上次启动以来您错过的闹钟。
问候, 斯蒂芬
如果您阅读了 AlarmManager API 文档页面:
注册的闹钟在设备处于睡眠状态时会保留(并且可以选择在此期间唤醒设备,如果它们在此期间关闭),但如果它被关闭并重新启动,则会被清除。
作为替代方案,您可以为意图注册广播接收器,android.intent.action.BOOT_COMPLETED
并在需要执行操作时检查您的 SharedPreferences。
有关广播的详细信息,请参阅此问题:Trying to start a service on boot on Android