应用和服务中的Android线程

时间:2015-08-19 06:46:56

标签: android java-threads

我有一个Android应用程序,它具有长期运行的服务。

线程(Android中调用服务的方法)是否与Android用于调用应用程序方法的相同线程(用于活动等)?

如果是这样,是否保证在某处?

1 个答案:

答案 0 :(得分:1)

根据android文档:

  

服务在其托管进程的主线程中运行 - 该服务不会创建自己的线程,也不会在单独的进程中运行(除非您另行指定)。这意味着,如果您的服务要进行任何CPU密集型工作或阻止操作(例如MP3播放或网络),您应该在服务中创建一个新线程来完成这项工作。通过使用单独的线程,您将降低应用程序无响应(ANR)错误的风险,并且应用程序的主线程可以保持专用于用户与您的活动的交互。

要在单独的线程中处理服务请求,您需要直接操作线程。或者您可以延长IntentService

您也可以在单独的过程中启动服务。要做到这一点,你需要在清单中声明它:

<service
  android:name="WordService"
  android:process=":my_process" 
  android:icon="@drawable/icon"
  android:label="@string/service_name"
  >
</service> 

您可以在此处找到更多信息: http://developer.android.com/guide/components/services.html