1

Android OS 从未停止让我感到惊讶。我希望我知道当您的应用程序处于后台时他们决定是否杀死您的线程的规则是什么。这很令人困惑,起初我确信他们在特殊的服务线程上运行服务代码,并且当应用程序进入后台时,从服务线程创建的任何线程都不会被消除,但是当我记录 Thread.currentThread() 我看到Activity 的代码和 Service 的代码都运行在同一个主线程上,而如文档所述,服务可以在后台运行,而活动则不能。

这整件事是如何运作的?他们如何决定要杀死哪个线程而不杀死哪个线程?他们如何决定一个对象是在使用中还是可以释放它的内存?起初我希望它能够像在标准 Java 环境中一样工作,但他们以一种不清楚且没有文档记录的方式改变了一切......

这里的任何人都可以给我一个关于这个问题的好文章的参考,或者更好地向我解释这个?

4

1 回答 1

0

对于初学者,在处理服务时,您可能应该阅读服务文档。从那里的相关行是:

请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。

实际上,所有这些都有很好的记录。Android 操作系统不会杀死特定线程,只会杀死整个进程。您可以在同一文档的流程生命周期部分阅读更多内容。

于 2013-11-09T02:28:38.660 回答