1

私のアプリには、一連の再帰関数Activityを開始するが含まれています。またはボタンAsyncTasksを使用してアクティビティを終了した場合でも、すべてが正常に機能します。backhome

アクティビティを離れるときにすべてを停止する簡単な解決策はありますか?

編集

私のバックグラウンドスレッドはhttp呼び出しなどを行います。ログから、スレッドがまだ実行されていることがわかります。

4

2 に答える 2

2

すべてのバックグラウンドスレッドをキャンセルする直接的な方法はありません。

アクティビティのOnStopまたはonDistroyは、以下のメソッドを呼び出してAsyncTaskを停止する必要があります。

asyncTask.stop(boolean)

asyncTaskを直接停止することはありませんが、doInBackgroundメソッドでは、isCancelled値をチェックし続ける必要があります。真の場合は、doInBackgroundを終了し、postExecuteをスキップしてステータスの適切な戻り値を取得します。これが私の知る限りの唯一の方法です。

于 2013-02-20T15:42:29.267 に答える
-2

アクティビティでonPause()をオーバーライドして、スレッドを停止できます。

だからあなたはすることができます:

@Override    
public void onPause(){
    super.onPause()
    // Stop threads here
}

そして、onResume()でそれらを再作成します。

于 2013-02-20T16:33:20.487 に答える