Android AlarmManager是否需要WakefulBroadcastReceiver(或同等产品)
我正在使用SetExactAndAllowHileIDLE和API 25及以上版本的AlarmManager。此外,我还使用“标准”广播接收器来接收由警报触发的挂起内容。此外,在API 26中,WakefulBroadcastReceiver(似乎更多地是为服务而不是报警而设计的)已被弃用Android AlarmManager是否需要WakefulBroadcastReceiver(或同等产品),android,alarmmanager,android-alarms,Android,Alarmmanager,Android Alarms,我正在使用SetExactAndAllowHileIDLE和API 25及以上版本的AlarmManager。此外,我还使用“标准”广播接收器来接收由警报触发的挂起内容。此外,在API 26中,WakefulBroadcastReceiver(似乎更多地是为服务而不是报警而设计的)已被弃用 API 26中是否替换了该类 我是否需要使用AlarmManager的等效类(因为它已被弃用),或者在使用SetExactAndAllowHileId报警时,使用标准广播接收器足以唤醒设备 最后,当与Alar
WakefuleBroadcastReceiver最初用于处理由于唤醒(通过报警)而需要执行的操作,这些操作可能需要一段时间,例如进行网络传输。为此,使用了
WakefulBroadcastReceiver
,以便能够可靠地启动服务
,并在设备返回低功率状态之前实际执行。它已被弃用,因为相同类型的行为可以使用其他功能完成,例如前台服务、JobScheduler
或高优先级推送通知。至于唤醒锁,这完全取决于当你的闹钟响起时你需要做什么。本文可能有助于理解AlarmManager
:
在API 23中引入的打盹模式下,警报的功能逐渐减弱。从Oreo(API 26)开始,后台操作受到更严格的限制,以延长电池寿命
如果您对使用alpha-level发行版软件还满意,那么新的WorkManager
就是一个不错的选择,因为它可以根据运行代码的设备为您处理许多版本依赖关系。它将自动使用JobScheduler
,AlarmManager
等,具体取决于您需要什么以及您正在执行的操作系统的版本
如果您不想使用
WorkManager
,我建议您深入查看JobScheduler
,看看它是否能满足您的需要。您可能需要执行一些API级别检查,并让您的代码在某些平台上使用AlarmManager
w/WakefulBroadcastReceiver
,在其他平台上使用JobScheduler
。感谢您的回答和时间。我的闹钟实际上是一个闹钟,因此,除了提醒用户之外,不需要做很多工作。因此,我认为我仍然应该使用AlarmManager发出的警报,对吗?是和否。它实际上可以归结为当设备处于低功耗状态时,您期望它做什么。如果你想让它提醒用户并完全唤醒设备,你必须使用setExactAndAllowHileIDLE()
来触发警报,但要通知用户并唤醒屏幕,你必须强迫设备停止打瞌睡。