在我的申请中,我有三项活动:
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);

10-06 07:29