如果我有运行的前台服务产生一个线程,那么这个子线程是否会被Android操作系统杀死?或者那个子线程也像服务一样受到保护?为了防止子线程被杀死,我是否需要将其置于自己的服务中?
谢谢, 尼克
答案 0 :(得分:0)
您的服务是一个组件。您表明它是“前台服务”,表示您已调用startForeground()
。只要你不停止它,前台服务将倾向于保持进程 - 以及它的扩展线程 - 免于终止,但这不是保证。
Android 从不终止您分叉的线程,除非终止整个过程。
答案 1 :(得分:0)
如果启动它的服务被终止,则由服务启动的AsyncTask以及普通线程不会被杀死。换句话说,您应该在服务被杀死时清理线程。
查看服务的生命周期:http://developer.android.com/reference/android/app/Service.html#ServiceLifecycle
您可能需要考虑使用IntentService:
IntentService是处理异步的Services的基类 请求(表示为意图)。