我有一个Android应用程序,它具有长期运行的服务。
线程(Android中调用服务的方法)是否与Android用于调用应用程序方法的相同线程(用于活动等)?
如果是这样,是否保证在某处?
答案 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