簡體   English   中英

如何從AsyncTask Android完成Activity

[英]How to finish Activity from AsyncTask Android

在我的應用程序中,我有3個活動:

1. Login

2. AsyncTask (不同類)

3. Welcome

收到Login Activity中的所有信息后,它將移至AsyncTask Activity 完成AsyncTask后,它將移至Welcome Activity 我想在AsyncTask Activity完成其工作后立即關閉Login Activity

我試圖在AsyncTaskonPostExecite()中使用以下代碼:

Login.this.finish();

但我得到一個錯誤: No enclosing instance of the type of Login is accessible in scope

請告訴我如何在完成AsyncTask后關閉我的Login Activity ..

提前致謝...

由於AsyncTaskActivity位於與LoginActivity不同的文件中,因此您無法通過以下方式完成LoginActivity:

Login.this.finish();

相反,您應該將活動參考作為參數傳遞給AsyncTaskActivity類,就像您可以定義以下構造函數一樣:

private class AsyncTaskActivity extends AsyncTask<String, Void, String> {

Activity mActivity;
    public AsyncTaskActivity(Activity activity)
    {
         super();
         this.mActivity=activity;
    }
}

並且每當您想要完成活動呼叫

this.mActivity.finish();

在LoginActivity中創建AsyncTaskActivity的對象

AsyncTaskActivity asynTask = new AsyncTaskActivity(LoginActivity.this);

好 。 在聲明新活動后,您應該在onPostExcecute方法中調用finish()。

腳步:

1)登錄活動

2)Asynac Task(傳遞應用程序上下文)

3)調用新活動

4)在onPostExcecute(context.finish())中完成你的登錄活動

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM