在AsyncTask中启动活动从活动传递上下文

时间:2013-05-26 08:06:47

标签: android android-activity android-asynctask android-context

这是AsyncTask构造函数:

private Context context;
private MainActivity activity;
public databaseTask(MainActivity activity, String task, String username, String password) {
    super();
    this.activity = activity;
    this.context = this.activity.getApplicationContext(); 

以下是MainActivity中的调用:

databaseTask dbGetGroupsTask = new databaseTask(MainActivity.this, "login", username, password);
dbGetGroupsTask.execute(username);

在onPostExecute中我有这段代码:

Intent s = new Intent(context, userLandingPage.class);
Bundle b = new Bundle();
b.putString("userName", username);
s.putExtras(b);
context.startActivity(s);

我在运行时获得的错误是:从Activity上下文外部调用startActivity()需要FLAG_ACTIVITY_NEW_TASK标志。这真的是你想要的吗?

从之前问题的所有回复中我看到它说为了从活动外部开始活动而不设置标志(因为不建议设置标志),您需要具有活动的上下文。我以为这就是我在做的事情,所以我不确定为什么这不起作用。

1 个答案:

答案 0 :(得分:1)

由于你的AsyncTask的一个参数是你可以直接使用的活动

Intent s = new Intent(activity, userLandingPage.class);
activity.startActivity(s);