0

私のAndroidアプリでは、アクティビティのスタックをクリアするために以下のコードを記述しましたが、このコードは機能していません。そのため、これに関する機能するスニペットを提供してください。

Intent intent = new Intent(UserProfile.this, Login.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
finish();
startActivity(intent);

ありがとうございます

4

3 に答える 3

0

APIレベル11で、新しいインテントフラグが追加されました:Intent.FLAG_ACTIVITY_CLEAR_TASKこのフラグを試してください。例 :

Intent intent = new Intent(UserProfile.this, Login.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
finish();
startActivity(intent);
于 2012-09-07T07:42:33.250 に答える
0

ActivityName.this.finish()を使用できます。

 Intent intent = new Intent(UserProfile.this, Login.class)
        .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
  YourActivityName.this.finish();
于 2012-09-07T07:44:58.957 に答える
0

現在のアクティビティがAで、Bアクティビティを起動する場合も、CとDをバックグラウンドで一時停止すると、FLAG_ACTIVITY_CLEAR_TOPはCとDを終了しますが、Aは終了しません。

回避策があり、Aアクティビティを終了できます。Aアクティビティでメッセージを受信して​​いる間にfinish()を実行できる「静的」ハンドラーを作成し、Bアクティビティの開始中にAから静的ハンドラーを使用してsendMessageを作成します。

于 2012-09-07T07:46:49.417 に答える