18

startServiceメソッドを呼び出すことによってアクティビティがサービスを開始するシナリオがあります。ActivityServiceは同じパッケージに含まれています。ExternalActivity次に、サービスは、その構成パラメーターに従って、別のパッケージに含まれているアクティビティー(それを呼び出しましょう)を起動できます。このアクティビティーは、 bindService;を介してサービスをバインドします。このアクティビティがタスクを完了すると、次のようにunbindServiceメソッドを呼び出します...

// method of ExternalActivity
@Override
public void onDestroy() {
    super.onDestroy();
    unbindService(...);
}

結果として、サービスも破壊されます。サービスの破壊を回避する可能性はありますか?

4

1 に答える 1

13

結果として、サービスも破壊されます。

yorkwが説明したように、サービスは次の両方が当てはまる場合にのみ破棄されます。

  1. すべての呼び出しは、へのbindService()対応する呼び出しと一致していますunbindService()

  2. 誰かが電話した場合startService()、誰かが電話しstopService()たか、サービスがstopSelf()

サービスの破壊を回避する可能性はありますか?

stopService()どちらを使用していても、電話をかけるのに適した時間を見つけてstopSelf()ください。

于 2012-04-29T10:28:56.420 に答える