1

我将服务绑定到应用程序上下文,该服务在单独的进程中运行(比如说#service_process)。我通过抛出未捕获的异常和应用程序的主进程(#main_proccess)停止来模拟应用程序崩溃,显然是杀死和 GCing 组件,包括主应用程序上下文。服务也未绑定(断开连接)和销毁(我调用了 Service#onDestroy())。

但是,$ adb shell ps | grep com.my_app即使在#main 进程死了之后,#service_process 仍然活着。

谁能解释这种行为的原因?如何避免“悬空”#service_process ?

4

1 回答 1

0

实际上,服务进程与前台进程没有太大区别。如此处所述

Android 的一个不同寻常的基本特性是应用程序进程的生命周期不直接由应用程序本身控制。相反,它是由系统通过组合系统知道正在运行的应用程序部分、这些东西对用户的重要性以及系统中可用的总内存量来确定的。

和这个:

服务进程...因此系统将始终保持此类进程运行,除非没有足够的内存来保留所有前台和可见进程。

于 2013-07-02T09:56:08.553 回答