0

アクティビティ A から B に移動するときに、スタックから A をクリアしたいので、ユーザーがアクティビティ B で戻るボタンを押すと、アプリが終了します。

Intent intent = new Intent(A.this, B.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

これらのコード行は機能しません - アプリはアクティビティ A に戻ります。また、フラグIntent.FLAG_ACTIVITY_NEW_TASKで OR を試みましたが、結果は同じです。私も実際に試してみFLAG_ACTIVITY_NO_HISTORYました。

アプリに Android 2.2 を使用しています。

4

3 に答える 3

1

startActivity() を呼び出した後、finish() を呼び出すだけです。スタックからアクティビティ A をクリアする必要があります。コードでは次のようになります。

Intent intent = new Intent(A.this, B.class);
startActivity(intent);
finish();
于 2012-06-07T15:06:51.213 に答える
0

2 つの解決策: B アクティビティで:

@Override
public void onBackPressed() {
    super.onBackPressed(); //not sure if this line is needed
    System.exit(0);
}

または、より良い方法: startActivityForResult でアクティビティを開始し、A アクティビティの onActivityResult メソッドを実装します。

public void onActivityResult(int requestCode, int resultCode, Intent intent) {
   finish();
}
于 2012-06-07T14:36:25.390 に答える
0

FLAG_ACTIVITY_NO_HISTORY

設定されている場合、新しいアクティビティは履歴スタックに保持されません。ユーザーがそこから離れるとすぐに、アクティビティは終了します。これは noHistory 属性で設定することもできます。

だから、あなたはあなたからこれを実装することができます

AndroidManifest.xml ファイル、

android:noHistory="true"

于 2012-06-07T16:12:40.527 に答える