2013-06-26 3 views
0

GPS 용 AsyncTask를 시작합니다. 그것은 잘 시작하지만 작업을 중지하고 다시 시작하면 다음 오류가 발생합니다.android AsyncTask restart error

java.lang.RuntimeException -> Looper.prepare()를 호출하지 않은 스레드에서 처리기를 만들 수 없습니다.

내 코드는 내가

if (this.getStatus() == AsyncTask.Status.RUNNING || 
      this.getStatus() == AsyncTask.Status.PENDING){ 
     this.cancel(true); 
    }this.execute(); 
+0

이미 실행 된'AsyncTask'를 실행할 수 없습니다. – Varun

+2

docs의 메인 스레드에서'execute()'를 호출해야합니다. - AsyncTask 클래스는 UI 스레드에로드되어야합니다. 이것은 JELLY_BEAN부터 자동으로 수행됩니다. 타스크 인스턴스는 UI 스레드에서 작성해야합니다. execute (Params ...)가 UI 스레드에서 호출되어야합니다. ' – Varun

답변

0

는하기 Varun는 말에 확장 할 수있는 작업을 다시 시작하는 데 사용 : 당신이 당신의 AsyncTask를 실행 할 때마다, 당신은 당신의 AsyncTask를 클래스의 새 인스턴스를 생성하고 실행해야 새로운 인스턴스.