我已经阅读了几篇关于使用它的帖子,但必须遗漏一些因为它不适合我。我的活动A在清单中有launchmode =“singleTop”。它启动活动B,启动模式=“singleInstance”。活动B打开浏览器并接收和意图返回,这就是为什么它是singleInstance。我试图覆盖后退按钮,以便用户被发送回活动A,然后可以按Back返回活动,而不是再次返回活动B.
// activity B
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.ECLAIR
&& keyCode == KeyEvent.KEYCODE_BACK
&& event.getRepeatCount() == 0) onBackPressed();
return super.onKeyDown(keyCode, event);
}
@Override
public void onBackPressed() {
startActivity(new Intent(this, UI.class)
.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK));
return;
}
从浏览器返回后,堆栈是...... A,B,浏览器,B
我希望这段代码能够将堆栈更改为...... A ...以便再次按下后再将用户带回主屏幕。
相反,它似乎将堆栈更改为... A,B,浏览器,B,A ......好像那些标志不在那里。
我尝试在startActivity之后调用活动B中的finish(),但后面的按钮再次将我带回浏览器!
我错过了什么?谢谢!
哔哔one
慕田峪4524236
慕田峪7331174