Android OS永远不会让我感到惊讶。我希望我知道当你的应用程序在后台时,他们决定杀死你的线程的规则是什么。这非常令人困惑,起初我确信它们在特殊服务线程上运行服务代码,并且当应用程序转到后台时,从服务线程创建的任何线程都不会被消除,但是当我记录Thread.currentThread()时我看到了Activity的代码和Service的代码都运行在同一个主线程上,而如文档所述,服务可以在后台运行而活动不能运行。
整个过程如何运作?他们如何决定杀死哪个线程?他们如何决定使用对象还是释放其内存?起初我预计它会像标准的Java环境一样工作,但是他们的所有内容都以一种不清楚且没有记录的方式改变了......
这里有人可以给我一篇关于这个问题的好文章的参考,或者更好的解释一下这个问题吗?
答案 0 :(得分:0)
首先,在处理服务时,您应该阅读Service文档。相关的一行是:
请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。
实际上所有这些都有很好的记录。 Android操作系统不会杀死特定的线程,只会杀死整个进程。您可以在同一文档的Process Lifecycle部分阅读更多内容。