2012-07-19 2 views
0

몇 달 동안 저를 괴롭히는 것이 있습니다. 다음 구조가 저장됩니까? AsyncTask는 Activity의 내부 클래스입니다. AsyncTask는 Activity 클래스 내의 메소드를 호출합니다. 이 메서드는 활동 개체 또는 UI 호출을 사용하지 않습니다.Inner class AsyncTask는 Activity 클래스를 둘러싼 메소드를 사용합니까?

public class MyActivity extends Activity { 

    private class MyAsyncTask extends AsyncTask<Void, Void, Void> { 

     @Override 
     protected void doInBackground(...) { 
      longRunningMethod(); 
     } 

     @Override 
     protected void onPostExecute(...) { 
     } 

     @Override 
     protected void onPreExecute (...) { 
     } 
    } 

    private void longRunningMethod() { 
     // ... 
    } 
} 
+0

그 이유는이 메서드는 UI 호출을 수행하지 않는다는 이유입니다. –

답변

0

안전 UI를 업데이트하지 않는 경우 UI를 업데이트하는 경우 runOnUiThread 메서드를 사용할 수 있습니다.

+0

감사합니다. 그래서 액티비티가 죽을 때 (예를 들어 오리엔테이션 변경) 스레드가 실행 중일 때 여전히 그 메서드를 사용할 수 있습니까? –

0

UI 수정을 시도하지 않는 한 안전합니다.

관련 문제