【问题标题】:How service do its work even if its component destroyed?即使组件被破坏,服务如何工作?
【发布时间】:2016-01-11 22:50:06
【问题描述】:

来自AndoridDeveloper documentation

服务可以无限期地在后台运行,即使启动它的组件被销毁。

还有

注意:服务在其宿主进程的主线程中运行——该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另外指定)。

即使应用程序被破坏,服务如何继续工作?

在这个问题中我假设:

组件意味着应用。

应用销毁时应用进程销毁 .

如果(这些假设中的任何一个是错误的){ 为什么错了? }else {请回答问题}

【问题讨论】:

  • 因为 Service 独立于其组件,即 Activity、Broadcast Receiver、Service 等
  • 表示服务和应用组件是主线程的一部分?
  • that mean service and app component are part of main thread ? 是的,他们在宿主进程的主线程中运行!
  • 这里的托管过程是什么意思?
  • Hosting Process是Activity、Service等组件存在的应用进程!

标签: android multithreading android-service


【解决方案1】:

它没有说明应用程序被破坏,您的描述不正确。

上面写着:

当应用程序组件(例如 activity) 通过调用 startService() 启动它。一旦启动,服务 可以无限期地在后台运行,即使组件 开始它就被销毁了。

这仅仅意味着,即使在您的应用中调用startService() 启动它的组件(例如 Activity 或其他 Service)被销毁后,Service 仍可以继续运行。

如果您的应用进程终止,则该进程中运行的所有组件(包括所有服务)都将终止(假设它们都没有被声明为在自己的进程中运行):

Android 可能会在某个时候决定关闭某个进程,当内存 低并且其他更直接的进程需要 为用户服务。在进程中运行的应用程序组件 杀死因此被摧毁。再次启动一个进程 当他们再次有工作要做时,这些组件。

【讨论】:

    猜你喜欢
    • 2016-12-06
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-24
    • 2018-08-31
    相关资源
    最近更新 更多