Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用asynctask时从活动传递控制_Android_Android Asynctask_Android Activity - Fatal编程技术网

Android 使用asynctask时从活动传递控制

Android 使用asynctask时从活动传递控制,android,android-asynctask,android-activity,Android,Android Asynctask,Android Activity,我的应用程序中有以下设计 有一个基本活动,我在其中执行一些常见任务 所有其他活动都扩展了BaseActivity,因此我不需要在所有其他活动中复制常见任务的代码 BaseActivity中定义的一个常见任务是登录操作,其中用户登录到他/她的帐户。由于涉及到一些后端数据库操作,所以在编写这些方法时我使用了AsyncTask 现在我的问题是,在我的子活动中,如果调用BaseActivity的login方法,那么如何将控件传递回我的子活动。我的应用程序中的任何活动都可以调用Login方法,因此每个

我的应用程序中有以下设计

  • 有一个基本活动,我在其中执行一些常见任务
  • 所有其他活动都扩展了BaseActivity,因此我不需要在所有其他活动中复制常见任务的代码
  • BaseActivity中定义的一个常见任务是登录操作,其中用户登录到他/她的帐户。由于涉及到一些后端数据库操作,所以在编写这些方法时我使用了AsyncTask
现在我的问题是,在我的子活动中,如果调用BaseActivity的login方法,那么如何将控件传递回我的子活动。我的应用程序中的任何活动都可以调用Login方法,因此每个活动都需要BaseActivity对成功登录的确认,以便可以执行这些子活动中的特定任务


非常感谢您的任何建议/帮助

BaseActivity类中有两个方法,分别是performLogin()和postLogin(),如下所示:

public void performLogin()
{
  // custom code    
  LoginTask task = new LoginTask(this); // pass reference of the activity to Asyntask
  // execute task
}

其中的LoginTask有一个接受BaseActivity类型参数的构造函数。让您的AsyncTask(上例中的LoginTask)调用activity.postLogin()方法。您可以根据子活动的需要重写此方法。

请参阅底部部分,内容是关于在
异步任务
完成时使用
接口
发送回调。在需要它的
活动中实施这一点非常好的建议。效果很好。谢谢投票通过并接受了答案。很高兴知道这有帮助:)