1

这是 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 标志。这真的是你想要的吗?

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

4

1 回答 1

1

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

Intent s = new Intent(activity, userLandingPage.class);
activity.startActivity(s);
于 2013-05-26T08:08:28.527 回答