2

私の質問は、Navigation Drawer のすべての List Item からSAME FRAGMENTを開く必要があることです。フラグメントが表示されている場合、AsyncTask の実行がOn Goingの場合、AsyncTask の実行をキャンセルする必要があります。

どうすればできますか?

これを達成するために非常に多くの方法を試しましたが、毎回失敗しました。

asynctaskObject.cancel(true); を使用しました。

では、どなたでもご回答いただけますでしょうか。私は結果を得ることを願っています。

前もって感謝します。:)

4

2 に答える 2

3

私は私の問題の解決策を見つけました。

以下のように onStop メソッドでリクエストを行うだけです。

@Override
public void onStop() {
    super.onStop();
    if(asyncTaskObject!=null){
        asyncTaskObject.cancel(true);
    }
}    

このように、同じフラグメントのナビゲーション ドロワーのリスト アイテムから要求するたびに、その時点でフラグメントが onStop() メソッドを呼び出し、task.cancel(true); を呼び出すだけです。

@MysticMagic に感謝します。指定されたリンクからこの問題を解決しました。

于 2014-11-14T07:14:49.887 に答える
0

強制的cancel()に機能させるには、doInBackground でキャンセルされたかどうかを確認する必要があります。

@Override
protected String doInBackground(String... params) 
{
    . 
    .
    if(isCancelled()){
        break;
    }
    .
}

これを参照してください: Android AsyncTask がキャンセルされた後に停止しない理由

それが役に立てば幸い。

于 2014-11-14T05:37:09.897 に答える