私のアプリには、一連の再帰関数Activity
を開始するが含まれています。またはボタンAsyncTasks
を使用してアクティビティを終了した場合でも、すべてが正常に機能します。back
home
アクティビティを離れるときにすべてを停止する簡単な解決策はありますか?
編集
私のバックグラウンドスレッドはhttp呼び出しなどを行います。ログから、スレッドがまだ実行されていることがわかります。
私のアプリには、一連の再帰関数Activity
を開始するが含まれています。またはボタンAsyncTasks
を使用してアクティビティを終了した場合でも、すべてが正常に機能します。back
home
アクティビティを離れるときにすべてを停止する簡単な解決策はありますか?
編集
私のバックグラウンドスレッドはhttp呼び出しなどを行います。ログから、スレッドがまだ実行されていることがわかります。
すべてのバックグラウンドスレッドをキャンセルする直接的な方法はありません。
アクティビティのOnStopまたはonDistroyは、以下のメソッドを呼び出してAsyncTaskを停止する必要があります。
asyncTask.stop(boolean)
asyncTaskを直接停止することはありませんが、doInBackgroundメソッドでは、isCancelled値をチェックし続ける必要があります。真の場合は、doInBackgroundを終了し、postExecuteをスキップしてステータスの適切な戻り値を取得します。これが私の知る限りの唯一の方法です。
アクティビティでonPause()をオーバーライドして、スレッドを停止できます。
だからあなたはすることができます:
@Override
public void onPause(){
super.onPause()
// Stop threads here
}
そして、onResume()でそれらを再作成します。