我创建了 BroadcastReceiver 来安排我的服务每 30 秒执行一次。这就是我在 AndroidManifest.xml 中的内容:
<receiver android:name="MyScheduleReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
现在效果很好,但只有在我添加了 QUICKBOOT_POWERON 操作之后。在此之前,我只有 BOOT_COMPLETED,当我在调试时重新启动模拟器或手机时,我的服务将永远不会启动。所以我的问题是这两者之间有什么区别以及何时使用它们?
Intent
android.intent.action.BOOT_COMPLETED
。
“重新启动”或“重新启动”后收到
android.intent.action.QUICKBOOT_POWERON
意图。
检查这里
这仅在 HTC 设备上需要,以支持其“快速启动”功能
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
这里是来自官方代码的完整代码 https://android.googlesource.com/platform/packages/apps/StorageManager/+/refs/tags/android-7.1.2_r8/AndroidManifest.xml
<receiver android:name=".automatic.AutomaticStorageBroadcastReceiver"
android:enabled="@bool/enable_automatic_storage_management">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<!-- This is required on HTC devices to support their "quickboot" feature -->
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
</intent-filter>
</receiver>
enter code here