繁体   English   中英

服务onStartCommand和onCreate与Activity的onCreate从同一线程执行

[英]Service onStartCommand and onCreate executed from the same Thread as Activity's onCreate

Android OS永不停止令我惊讶。 我希望我知道他们决定在您的应用程序处于后台状态时杀死线程还是不杀死线程的规则。 这非常令人困惑,起初我确定它们在特殊的服务线程上运行服务代码,并且当应用程序进入后台时,不会消除从服务线程创建的任何线程,但是当我登录Thread.currentThread()时,我看到了Activity的代码和Service的代码都在同一主线程上运行,而正如所记录的那样,服务可以在后台运行而活动不能运行。

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

这里的任何人都可以给我提供有关此问题的好文章的参考,甚至更好的可以向我解释一下?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM