2011-04-09 5 views
2

는 내가 Activity에서 ASyncTask를 시작ASyncTask에서 활동을 닫는 방법?

public class PrepareRequestTokenActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     new OAuthRequestTokenTask(this, consumer, provider).execute(); 
    } 

그런 다음, AsyncTask를 실행의 결과에 따라 내가하지에이 PrepareRequestTokenActivity 활동을 닫아야 하나.

당신이 onPostExecute 내에서 작업하는 경우

답변

5

onPostExecute이 변수를 사용하여 finish()를 실행하면됩니다. 생성자에서

+1

그것은 나를 위해 작동하지 않았다, 당신은 여기 좀보세요 : http://stackoverflow.com/questions/8623823/finish-the-calling-activity-when-asynctask-completes 그리고 뭔가 제안. 미리 감사드립니다. –

+1

((활동) 컨텍스트) .finish(); –

3

(결과는 AsyncTaskonPostExecute로 알려져있다), 당신은 asyncTask() 클래스 활동 내부에있어; 단순히 MyClassName.this.finish() 또는 비슷한 것을 호출하면 정상적으로 작동합니까? onPostExecute()에는 UI 범위가 있다고 생각합니다.

+0

내 AsyncTask를 외부 클래스에 onPostExcecute 방법에 마무리() 활동 참조 을 유지하고 호출합니다. Sunil의 접근 방식처럼 보입니다. –