私は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 ステートメントは呼び出されません。