使用asynctask时从活动传递控制

时间:2013-09-06 22:46:46

标签: android android-asynctask android-activity

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

  • 我执行一些常见任务的基础活动
  • 所有其他活动都扩展了BaseActivity,因此我无需在所有其他活动中复制常见任务的代码。
  • BaseActivity中定义的一个常见任务是登录操作,用户登录到他/她的帐户。由于涉及一些后端数据库操作,我在编写这些方法时使用AsyncTask。

现在我的问题是,在我的子活动中,如果我调用BaseActivity的登录方法,那么如何将控件传递回我的子活动。登录方法可以通过我的应用程序中的任何活动调用,因此每个活动都需要从BaseActivity返回关于成功登录的确认,以便可以执行这些子活动中的特定任务。

非常感谢任何建议/帮助

1 个答案:

答案 0 :(得分:1)

您可以在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()方法。您可以根据子活动的需要覆盖此方法。