私はandroid:process属性を使用しません。これは実際にサービスを別のプロセスで実行し、共有設定のようなことをするのを困難にします。あなたのアプリケーションが死んだときにあなたのサービスが死ぬことを心配する必要はありません。サービスは続行します(つまり、サービスのポイントです)。バインディングサービスが必要ないのは、バインディングが開始され、バインディングが終了したときに終了するためです。ことでは、言った:
<service
android:enabled="true"
android:exported="true"
android:name=".MyService"
android:label="@string/my_service_label"
android:description="@string/my_service_description"
<intent-filter>
<action android:name="com.package.name.START_SERVICE" />
</intent-filter>
</service>
あなたは(システムによって起動することはできません - アクティビティなければならない)サービスを開始する意図のために、独自のアクションを定義することができます。私はシステムが私のサービスをインスタンス化することができるように "有効"を設定し、他のアプリケーションがインテントを送信して自分のサービスとやりとりできるように "エクスポート"することが好きです。この詳細についてはhereをご覧ください。
今
<action android:name="com.package.name.IRemoteConnection" />
あなたの活動からサービスを開始するには:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent serviceIntent = new Intent("com.package.name.START_SERVICE");
this.startService(serviceIntent);
// You can finish your activity here or keep going...
}
}
また、あなたがこれを行う場合だけのようなバインダーに追加して、意図、バインディングを使用して、長時間実行されるサービスを行うことができますサービスのための今
:
public class MyService extends Service {
@Override
public IBinder onBind(Intent intent) {
// This is triggered by the binder action intent.
// You can return your binder here if you want...
return null;
}
@Override
public void onCreate() {
// Called when your service is first created.
}
@Override
public in onStartCommand(Intent intent, int flags, int startId) {
// This is triggered by the service action start intent
return super.onStartCommand(intent, flags, startId);
}
}
今、あなたのサービスを実行する必要があります。長寿を助けるためにいくつかのトリックがあります。フォアグラウンドサービスとして実行するようにします(サービスでこれを行います)。これによりステータスバーにスティッキーな通知アイコンが作成されます。また、あなたのアプリケーションをAndroidによって殺される可能性が低くなるようにHEAPのライトを保持してください。
また、DVMを終了するとサービスが停止するため、[設定] - > [アプリケーション]に移動してアプリケーションを停止すると、DVMが強制終了され、サービスが強制終了されます。あなたのアプリケーションが設定で実行されているのを見るだけで、アクティビティが実行中であることを意味するものではありません。アクティビティとサービスはライフサイクルが異なりますが、DVMを共有できます。必要がなければあなたの活動を殺す必要はなく、単にAndroidにそれを処理させるように心がけてください。
これが役に立ちます。
私は同じ問題があります。 ソリューションを見つけましたか? – Mixer