RECEIVE_BOOT_COMPLETED-何时触发?

时间:2019-02-11 07:37:22

标签: android

我需要我的应用才能启动服务。我已经读过很多问题,包括这一问题(请参阅答案1):Trying to start a service on boot on Android

我对答案1非常满意,但对RECEIVE_BOOT_COMPLETED有疑问。这是仅在启动后触发,还是在用户安装或首次启动该应用程序时触发(或模拟),还是我必须确保自己首次通过其他服务启动该服务?方法,因为该设备从技术上讲并未启动,并且从技术上讲不应发送BOOT_COMPLETED消息。

1 个答案:

答案 0 :(得分:1)

RECEIVE_BOOT_COMPLETED是广播消息,系统只能发送。另外,从此documentation可以看出,这是一次广播,仅一次发送。

因此,您的RECEIVE_BOOT_COMPLETED广播接收器将不会在您的应用首次安装或首次运行时触发。您的Android设备只会广播一次此消息,并且该消息将在其首次启动时完成。

因此,如果您希望确保服务正在运行,仅依靠引导完成广播是不够的。毕竟,如果系统出于某种原因(例如需要内存)决定终止您的服务,那么您的服务将一直处于失效状态,直到下次启动时……这不是您想要的。

老实说,RECEIVE_BOOT_COMPLETED广播主要用作启动服务的补充方法,而不是主要方法。