[英]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
。
我試圖在AsyncTask
的onPostExecite()
中使用以下代碼:
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.