android - 从服务内部检测系统重新启动

标签 android android-service

是否可以通过服务自身的一种方法来检测服务何时停止或销毁?例如 onDestroy() (当前未工作)

我需要的是从服务内部检测设备何时重新启动或关闭。

最佳答案

您可以创建一个 BroadcastReceiver 来监听 ACTION_SHUTDOWNQUICKBOOT_POWEROFF Intent :

<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 Intent :

<receiver android:name=".PowerOnReceiver">
    <intent-filter>
        <action android:name="android.intent.action.BOOT_COMPLETED"/>
    </intent-filter>
</receiver>

请记住,后者要求用户首先解锁设备。在较新的 API 中,您可以监听 LOCKED_BOOT_COMPLETED,这将允许您在设备解锁之前启动服务或执行任何您需要的操作。

关于android - 从服务内部检测系统重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51294996/

相关文章:

android - 无法从包中获取 Intent 过滤器

android - 在应用程序中连接数据库而不在网站上显示界面

Android 8.0 : java. lang.IllegalStateException: 不允许启动服务 Intent

java - startForeground 中的错误通知 : contentIntent required error on Android 2. 3.4

android - 如何从 Android 中的 ServiceManager 获取服务?

android - 存储在android sqlite数据库中的数据的生命周期是多少

java - Android SharedPreferences 不会保存数据

java - 不支持在线程中执行 MySQL 存储过程并获取可调用语句

java - 如何在调用 stopService 方法后停止服务中的线程?在安卓中

android - Music Playback Service 和 UI Thread 之间如何通信