你可以在一个单独的进程上启动IntentService吗?

时间:2012-09-19 21:01:13

标签: android android-service

  1. 是否可以在单独的流程上启动IntentService?怎么样?如果是这样,是否必须绑定它?
  2. 是否可以在单独的流程IntentService上启动run it in the foreground
  3. android:isolatedProcessandroid:process之间有什么区别?请参阅:http://developer.android.com/guide/topics/manifest/service-element.html

1 个答案:

答案 0 :(得分:36)

  

1)是否可以在单独的流程上启动IntentService?怎么样?如果是这样,是否必须绑定它?

是的,您可以在单独的流程中启动IntentService。只需将android:process=":whatever"添加到该服务的清单条目中即可。

不,你不需要绑定它。您可以使用startService()

发送Intents来与之通信
  

2)是否可以在单独的进程上启动IntentService并在前台运行它?

是(见上文)。要使您的服务在前台运行,只要它想要这样做就可以调用startForeground()。服务本身可以控制它是在前台运行还是在后台运行。

  

3)android:isolatedProcessandroid:process之间有什么区别?请参阅:http://developer.android.com/guide/topics/manifest/service-element.html

android:process允许您控制每个特定组件在哪个进程中运行(通过指定进程的名称)。您可以将应用程序的组件分组以在单独的进程中运行(例如,一个进程中的所有UI组件和另一个进程中的所有服务)。默认行为是应用程序的所有组件都在同一进程中运行。

android:isolatedProcess是一个标志(true / false),如果您希望特定服务组件在与应用程序其余部分隔离的单独进程中运行,则可以设置该标志。隔离的进程没有授予应用程序其余部分的任何权限。通常,权限被授予应用程序,应用程序的所有组件都具有应用程序获得的所有权限。 android:isolatedProcess仅适用于API级别16(Jellybean)。请参阅http://aleksmaus.blogspot.de/2012/09/a-feature-of-android-jelly-bean.htmlAdvantage of introducing Isolatedprocess tag within Services in JellyBean[Android]