-2

私はhttp request使用AsyncTaskしていますが、ログアウトするAsyncTaskと停止する必要があります。だから私は電話cancel(true)していonStop()ます。を呼び出すとcancel(true)、まだ開始されていないリクエストはキャンセルされますが、問題はisCancelled()、実行中のタスクがキャンセルされたかどうかを確認するために呼び出されないことです。実行中のAsyncTaskを停止する方法はありますisCancelled()doInBackgroud()AsyncTask次にシナリオです。

class AsyncClass extends AsyncTask<>{

    @Override
     protected String doInBackground(Void... params)
      {
             if(isCancelled())
               {
                Log.d("isCancelled", iscancelled());
               }
          //call the webservice

      }
    }

今、私が呼んでいる場所から他のクラスがあります

if(asyncTaskObject!=null){
    asyncTaskObject.cancel(true);
        asyncTaskObject=null;
}

ただし、 iscancelled() 内の Log ステートメントは呼び出されません。

4

1 に答える 1

1

isCancelled()Android自体によって実行される必要があると予想するのはなぜですか。これは、コードがタスクのステータスを照会できるようにする getter メソッドです。

于 2012-06-29T09:03:34.110 に答える