你能在一个单独的流程上启动IntentService吗


  1. 是否可以在单独的进程上启动IntentService?怎样如果是,是否必须与之绑定
  2. 是否可以在单独的进程上启动IntentService并在前台运行它
  3. android:isolatedProcessandroid:process之间有什么区别?请参阅:http://developer.android.com/guide/topics/manifest/service-element.html

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.html以及在JellyBean〔Android〕中的服务中引入Isolatedprocess标签的优势

最新更新