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