代码之家  ›  专栏  ›  技术社区  ›  Rajesh K

如果接收到广播,将调用应用程序类OnCreate吗

  •  1
  • Rajesh K  · 技术社区  · 7 年前

    我用的是 JobIntentService 在任务结束后执行某个任务我发送了一个广播,该广播也由我的一个活动收听。

    假设在Android操作系统关闭活动以释放一些内存的情况下,如果广播是从 JobIntentService服务 威尔 OnCreate 的应用程序也被调用?

    1 回复  |  直到 7 年前
        1
  •  1
  •   MRah    7 年前

    不,它永远不会调用应用程序OnCreate() 方法(仅在冷启动期间调用)。

    冷启动指的是从头开始的应用程序:系统进程在此启动之前尚未创建应用程序进程。冷启动发生在设备启动后首次启动应用程序或系统终止应用程序后。

    关于广播接收器生命周期:

    如果接收者已在活动中注册,则其生命周期就是活动生命周期。因此,一旦你的活动被破坏,你的接收器将无法监听。

    如果您的接收器已在应用程序中注册,那么它的生命周期将是应用程序生命周期,只要应用程序没有被破坏,它就能够监听广播。

    JobIntentService&接收器

    当您(从接收器)启动JobIntentServie时,只要有活动的作业正在进行,则您的作业意图服务不会被操作系统终止(请注意,可能有时间限制,以了解更多信息: How long is the "JobService execution time limit" mentioned in Android's JobIntentService docs? ).

    如果你的活动同时被破坏,那么你的广播接收器将不会收听广播,因为它的生命周期已经结束,如果你自己不注销接收器,系统将杀死它,因为系统认为广播接收器不再活动。

    因此,如果您想收听广播,只要您的应用程序没有被破坏,就应该在应用程序中注册广播接收器 创建() 方法。

        2
  •  1
  •   LukeWaggoner    6 年前

    我不知道标为正确的答案是否仍然正确。在运行Android P的手机上,如果您的 <application> 节点 onCreate() 在应用程序类中,在广播接收器中的onReceive之前调用。我认为没有理由相信其他版本的Android会有不同的表现。

    推荐文章