2

新しく作成したアクティビティをスタック上で唯一のアクティビティとして設定し、その上にも配置したいので、アクティビティ B が A から作成されたときに、[戻る] を押して B からホーム メニューに戻ることができます。

したがって、これは私がしたことです

public void onClick(View v) {
    Intent i = new Intent(this,B.class);

    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
    startActivity(i);

}

何らかの理由で、アクティビティ B が開始された後、[戻る] を押しても A に移動します。

ここで何が欠けていますか?

4

4 に答える 4

3

このようにする

public void onClick(View v) {
Intent i = new Intent(this,B.class);

i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(i);
finish(); // to end the current activity
}

startactivity(...) の後にfinish()を呼び出すので、A activity ll removed from the stack. 戻るボタンを押すとアクティビティはスタックにありません。

于 2012-12-03T14:27:44.130 に答える
1

マニフェストのアクティビティを変更します。

  <activity
            android:name=".ActivityA"
              android:noHistory="true"
 >
        </activity>
于 2012-12-03T13:46:27.093 に答える
1

アクティビティ A で startActivity(i) を呼び出した後、finish(); を呼び出す必要があります。- アクティビティを終了します。その後、押しても A に移動しません。

于 2012-12-03T13:45:47.107 に答える
0

これは私にとってはうまくいきます、そして私はそれを同じように使います:

Intent myIntent = new Intent(this, b.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(myIntent, 0);
于 2012-12-03T13:46:28.047 に答える