在我的申请中,我有三项活动:1. Login
2. AsyncTask
(不同级别)3. Welcome
在接收到Login Activity
中的所有信息后,它将移动到AsyncTask Activity
。当AsyncTask
完成时,它将移动到Welcome Activity
。我想在Login Activity
完成工作后立即关闭AsyncTask Activity
。
我试图在onPostExecite()
的AsyncTask
中使用以下代码:Login.this.finish();
但是我得到了一个错误:No enclosing instance of the type of Login is accessible in scope
。
请告诉我如何在完成Login Activity
后关闭AsyncTask
。
提前谢谢…
最佳答案
由于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);