Androidプログラマへの道 〜 Moonlight 明日香 〜 - サービスを別プロセスで起動する
サービスのプロセスを起動元とは異なる別のプロセスで実行したい場合, AndroidManifest.xmlのserviceタグの属性を利用する.
インテントでサービスを起動/停止するを例に説明する.

サービスを別プロセスで起動

  • AndroidManifest.xml
    • servceタグにandroid:process=":XYZ"(XYZは任意)を記述する.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.moonlight_aska.android.service01"
  android:versionCode="1"
  android:versionName="1.0" >
  <uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="8" />
  <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
      android:name="com.moonlight_aska.android.service01.ServiceActivity"
      android:label="@string/app_name" >
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
    </activity>
    <!-- サービス登録 -->
    <service android:name=".TestService" android:process=":testprocess"></service>
  </application>
</manifest>