IntentService onHandleIntent メソッドを手動で終了するのに問題があります。残りのスレッドの実行に不可欠な例外をキャッチしています。例外をキャッチしたときにスレッドを停止したいと考えています。stopSelf() を呼び出すか、onDestroy() を直接呼び出してみましたが、これはおそらく非常に悪い方法であると確信していますが、機能していません。スレッドはそれらを呼び出して続行します。
誰でもこれを行う方法について良いアイデアはありますか?
IntentService onHandleIntent メソッドを手動で終了するのに問題があります。残りのスレッドの実行に不可欠な例外をキャッチしています。例外をキャッチしたときにスレッドを停止したいと考えています。stopSelf() を呼び出すか、onDestroy() を直接呼び出してみましたが、これはおそらく非常に悪い方法であると確信していますが、機能していません。スレッドはそれらを呼び出して続行します。
誰でもこれを行う方法について良いアイデアはありますか?
sonykuba が言ったように、 onHandleIntent メソッドを終了すると Service が停止します。したがって、次のようなことができます。
public void onHandleIntent {
try {
// ... your code here
} catch(YourException e) {
// do something with the exception
return; // this prevents the rest of the method from execution
// and thereby stops the service
}
// rest of your code
}
IntentService は、OnHandleIntent の終了後に自動的に停止します。手動で行う必要はありません。