如果你有一个长期运行的程序作为服务运行,你应该启动一个线程来完成工作,因为该服务在主应用程序的线程中运行。 我不能得到的是,你可以通过说" startForeground()"来标记服务的重要性。但是这个特性与服务(可能是服务对象)有关,与线程无关。
这个特性如何影响服务的onStartCommand调用中启动的线程的寿命?
我得到的是,android如何知道不会杀死该线程,因为它不是被标记为前台的线程,而是被标记的服务。 如果我开始5个线程怎么办?我找不到任何解释服务前景与服务生成线程优先级之间关系的文档。
答案 0 :(得分:2)
因为服务在主应用程序的线程中运行
对象不在Java中的线程上运行。方法呢。在主应用程序线程上调用服务的生命周期方法(例如,onStartCommand()
)。
这个特性如何影响服务的onStartCommand调用中启动的线程的寿命?
startForeground()
使Android不太可能因年老,内存不足等原因自动终止您的流程。
android如何知道不杀死该线程
Android不会自行杀死线程。 Android会自行终止进程。
如果我开始5个线程怎么办?
然后你开始5个线程。
我找不到任何解释服务前景与服务产生的线程优先级之间关系的文档。
他们彼此无关。您将找不到任何解释“服务的前景性”与Android书籍作者头发数量之间关系的文档。
此外,您似乎将线程的长寿和优先级混为一谈,这些也与彼此无关,尽管这更像是Java而不是Android的东西。