我只是想知道服务运行在哪个线程上?我听说它在托管过程的主线程中运行。如果这是真的那么为什么它不阻止** UI ** ,即使应用程序退出服务连续在后台运行。请帮帮我。我再问的是服务在主线程上运行然后为什么它不阻止UI(ANR)? 答案将不胜感激。谢谢。
答案 0 :(得分:0)
尝试
Log.d("~~~","thread id="+Thread.currentThread().getId()+" name="+Thread.currentThread().getName());
它打印线程的名称和数字ID。
PS使用android.os.Process.myPid()
获取进程ID。
答案 1 :(得分:0)
如果您仔细阅读Android文档,您可以找到: “请注意,服务与其他应用程序对象一样,在其托管进程的主线程中运行。”
如果您希望您的服务在新线程中运行,您必须自己创建该线程(或者您可以查看IntentService)。