是否可以检测服务何时被其自身的一种方法停止或破坏?例如 onDestroy()(当前不起作用)
我需要的是在设备重新启动或关闭时从服务内部进行检测。
答案 0 :(得分:1)
您可以创建一个BroadcastReceiver来监听ACTION_SHUTDOWN
和QUICKBOOT_POWEROFF
的意图:
<receiver android:name=".PowerOffReceiver">
<intent-filter>
<action android:name="android.intent.action.ACTION_SHUTDOWN" />
<action android:name="android.intent.action.QUICKBOOT_POWEROFF" />
</intent-filter>
</receiver>
相反,您可以在手机重新开机时收听BOOT_COMPLETED
的意图:
<receiver android:name=".PowerOnReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
请记住,后者要求设备首先由用户解锁。在较新的API中,您可以侦听LOCKED_BOOT_COMPLETED
,这将允许您启动服务或在设备解锁之前执行所需的任何操作。