AsyncTask
을 사용하여 http request
을 만들고 있는데 내가 원하는 것은 로그 아웃 할 때 AsyncTask
이 멈춰야한다는 것입니다. 그래서 나는 onStop()
에 cancel(true)
라고 부릅니다. cancel(true)
으로 전화하면 아직 시작되지 않은 요청은 취소되지만 문제는 수행 작업이 취소되었는지 여부를 확인하는 isCancelled()
이 호출되지 않는다는 것입니다. 나는 doInBackgroud()
메서드에서 isCancelled()
을 확인하고 있습니다. AsyncTask
실행중인 AsyncTask를 중지하는 방법이 있습니까? 다음은 시나리오입니다.onCancelled()가 호출되었지만 isCancelled()가 호출되지 않습니다
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 곳에서 다른 클래스가있다.
마지막 편집 후에는 사용자가 무엇을 요구하는지 완전히 명확하지 않습니다. – Robert
Robert가 맞습니다. 나는 너를 의미한다고 생각할 수있다. 이것 좀 봐 : http://stackoverflow.com/questions/2735102/ideal-way-to-cancel-an-executing-asynctask – Kuffs
http://stackoverflow.com/questions/2531336/asynctask-wont-stop-even- 활동이 끝났을 때 파괴되었습니다. 이것을 확인할 수 있습니까? – Rookie