我需要一些有关 Activity 堆栈的帮助。
在我的应用程序中,用户可以从 6 个屏幕进行导航
1-->2-->3-->4-->
当我转到 4 屏幕时,我有取消按钮
当用户单击该按钮时,它应该转到第二个屏幕,并且
当用户单击键盘上的后退按钮时,它应该转到1 个已经在 Activity 堆栈中的屏幕如何执行此操作。
请举个例子。
最佳答案
只需使用FLAG_ACTIVITY_CLEAR_TOP
当用户点击按钮时:
Intent intent = new Intent(ActivityD.this, ActivityB.class);
Intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
当用户按返回时:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent intent = new Intent(ActivityD.this, ActivityA.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
}
return super.onKeyDown(keyCode, event);
}
此代码会将用户带到第一个 Activity。由于 FLAG_ACTIVITY_SINGLE_TOP
,该 Activity 不会重新创建。当 Activity 已位于后台堆栈时,将调用 onNewIntent(),例如您可以在其中使用来自 Intent 的数据。
如果您希望此类行为作为您的 Activity 的默认行为,请将这些标志放入 android list 并放入 Activity 声明中。
关于android - 如何显示 Activity 堆栈中的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5455696/