1-0*_*ent 5 android broadcastreceiver android-8.0-oreo
我正在尝试制作一个应用程序,当您在一天中的特定时间段将手机连接到充电器时,该应用程序会显示一些信息。
在 Android Oreo 之前,这很简单,只需添加一个广播接收器并将 android.intent.action.ACTION_POWER_CONNECTED 添加到清单中的 intentfilter。
现在我正在努力寻找一个可行的解决方案来创建相同的功能。我想过定期检查设备充电状态,但这感觉不对,并且不会在将设备连接到充电器时立即触发。
从我的应用程序注册广播接收器也不起作用,当应用程序关闭时,不再接收广播。
当 Android 设备连接到 Android Oreo 中的充电器时,是否有一种电池友好的方式来触发操作?
有些广播不受后台执行限制,并且广播接收器仍然可以在清单中注册。
您可以使用 ACTION_BOOT_COMPLETED 广播来启动一项服务,该服务在运行时为 ACTION_POWER_CONNECTED 广播注册接收器。(该服务必须是前台服务,否则可能会被破坏。)
另一种解决方案是使用 JobScheduler 创建需要充电的作业。那么就不需要前台服务了。