私の元同僚は、バックグラウンドで音楽を再生するサービスを開発しました。ただし、ユーザーがプログラムを終了したい場合、アプリケーションは以下のコードを呼び出してサービスを停止します。サービスは停止しますが、onDestroy メソッドをオーバーライドしている間は処理できません
Activity realAct = context.getParent();
if (realAct == null) {
realAct = context;
}
ContextWrapper cw = new ContextWrapper(realAct);
cw.stopService(new Intent(cw, MyPlayerService.class));
編集: 簡単に言うと、Activity Main は Activity Sub を開始し、Activity Sub は Service を開始します。次に、戻るボタンを押して、Activity Sub を終了します。アクティビティ メインにいるときは、上記の stopservice コードを呼び出します。そのため、 Service の onDestroy メソッドは呼び出されません