我有服务绑定到app上下文,这个服务在一个单独的进程中运行(比如#service_process)。 我通过抛出未捕获的异常和应用程序的主进程(#main_proccess)停止来模拟应用程序崩溃,显然是kill和GCing组件,包括主应用程序上下文。 服务也是未绑定(断开连接)和销毁(我调用了Service#onDestroy())。
然而,即使#main进程已经死了,#{1}}仍然存在#service_process。
任何人都可以解释这种行为的原因吗? 怎么可能避免'晃来晃去'#service_process?
答案 0 :(得分:0)
实际上,服务流程与前景流程没有太大区别。如上所述here
Android的一个不寻常的基本功能是应用程序 过程的生命周期不是由应用程序直接控制的 本身。相反,它由系统通过组合确定 系统知道正在运行的应用程序部分,如何运行 这些东西对用户来说很重要,总体内存是多少 在系统中可用。
这一个:
服务流程......所以系统将始终保持这样的流程 除非没有足够的内存来保留所有前景和 可见的过程。