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 の引数の 1 つは直接使用できるアクティビティであるため、

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