我正在编写一个Android应用程序,需要在关闭手机电源之前执行一些代码。以前,可以通过定义BroadcastReceiver并将其注册到AndroidManifest.xml
中来实现:
<receiver android:name="MyBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
在这种情况下,在关闭电话之前,将具有操作ACTION_SHUTDOWN的意图发送给MyBroadcastReceiver,并执行onReceive方法中的代码。
但这在API 28中不再起作用,因为ACTION_SHUTDOWN
无法再在清单中注册。
我尝试向BroadcastReceiver
注册一个ACTION_BOOT_COMPLETED
(因为仍允许使用),这会在启动时触发一项服务,该服务的任务是监视和检测手机何时关机,但是没有这么做。工作。