Android服务运行在哪个线程和如何

时间:2014-06-04 12:25:35

标签: android android-service android-ui

我只是想知道服务运行在哪个线程上?我听说它在托管过程的主线程中运行。如果这是真的那么为什么它不阻止** UI ** ,即使应用程序退出服务连续在后台运行。请帮帮我。我再问的是服务在主线程上运行然后为什么它不阻止UI(ANR)?     答案将不胜感激。谢谢。

2 个答案:

答案 0 :(得分:0)

尝试

Log.d("~~~","thread id="+Thread.currentThread().getId()+"  name="+Thread.currentThread().getName());

它打印线程的名称和数字ID。

PS使用android.os.Process.myPid()获取进程ID。

答案 1 :(得分:0)

如果您仔细阅读Android文档,您可以找到: “请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。”

如果您希望您的服务在新线程中运行,您必须自己创建该线程(或者您可以查看IntentService)。