2

我想将我新创建的活动设置为堆栈中唯一的一个并且也在它的顶部,所以当从 A 创建活动 B 时,我可以按返回从 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

在活动 A 中调用 startActivity(i) 后,必须调用 finish(); - 完成活动。然后按回来不会带你到A!

于 2012-12-03T13:45:47.107 回答
1

更改清单中的活动:

  <activity
            android:name=".ActivityA"
              android:noHistory="true"
 >
        </activity>
于 2012-12-03T13:46:27.093 回答
0

这对我有用,我也用它:

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