代码之家  ›  专栏  ›  技术社区  ›  Nidhoegger

接收启动完成-何时触发?

  •  0
  • Nidhoegger  · 技术社区  · 5 年前

    我需要我的应用程序来启动服务。我读过很多问题,包括这个问题(见回答1): Trying to start a service on boot on Android

    我很满意答案1,但有一个关于 RECEIVE_BOOT_COMPLETED . 这只会在引导后触发,还是会在用户安装或首次启动应用程序时触发(或模拟),或者我必须确保服务是通过另一种方法首次启动的,因为设备没有从技术上启动,技术上不应发送 BOOT_COMPLETED 消息。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Jackey    5 年前

    RECEIVE_BOOT_COMPLETED 是可以 只有 由系统发送。另外,从这个角度来看 documentation ,这是只发送的广播 一旦 .

    因此,您的广播接收器 接收启动完成 不会 在应用程序首次安装或首次运行时触发。你的Android设备只会广播一次这个消息,当它完成第一次引导时。

    因此,如果您希望确保您的服务正在运行,那么仅仅依靠引导完成广播是不够的。毕竟,如果系统出于任何原因(比如需要内存)决定终止您的服务,那么您的服务在下一次引导之前就已经停止了……这不是你想要的。

    老实说, 接收启动完成 广播主要是作为服务启动的辅助方法,而不是主要方法。