2014-12-21 2 views
0

조각의 AsyncTask onPause 상태를 취소하려는 안드로이드 응용 프로그램을 만들었습니다.조각에서 AsyncTask를 취소하는 방법

AsyncTask.cancel(true);을 사용해 보았지만 null 포인터 예외가 발생합니다.

@Override 
public void onPause() 
{ 
    super.onPause(); 
    AsyncTask.cancel(true); 
} 

감사합니다.

+0

, 내가 만든 더 많은 정보 http://stackoverflow.com/questions/6039158/android-cancel-async-task –

+0

이 참조 그것의 객체,하지만 여전히 null 포인터 오류를 제공합니다. –

+0

체크 개체, 어쩌면 초기화되지 않았습니까? null이 아닌지 확인한 후 취소하십시오. –

답변

0

task.cancel()이됩니다. 더 이상 존재하지 않는 UI에 대한 액세스/업데이트를 피하기 위해 onBackground()onPostExecute()isCancelled()에 대한 수표를 자주 포함해야합니다.

public void onActivityPause() { 
    task.cancel(); 
} 
0

asyncTask.cancel (true); 부울 값만 변경하고 스레드를 중지하지 않습니다. 비동기 작업이 취소되지 않았 으면 "요청"해야합니다.

예 : 대신 AsyncTask를 클래스의 AsyncTask를의 객체가 필요

@Override 
protected Void doInBackground(Void... params) { 
    while(!isCancelled()){ 
     // do something 
    } 
    return null; 
} 
관련 문제