返回堆栈和意图标志不起作用
Posted
技术标签:
【中文标题】返回堆栈和意图标志不起作用【英文标题】:Back Stack And Intent Flag Not working 【发布时间】:2018-05-07 04:55:04 【问题描述】:我的应用启动器是活动 A,然后用户转到活动 B,然后是活动 C,然后是活动 D。如果用户从 D 执行某些操作,则用户应重定向到活动 E。
像 A->B->C->D->E
现在如果用户从活动 E 按下返回按钮,那么他应该移动到活动 A。我如何设置意图标志来实现这一点。
提前致谢
【问题讨论】:
阅读developer.android.com/training/implementing-navigation/…和这个developer.android.com/design/patterns/navigation.htmlfinish();
其他活动所以如果你返回而不是直接到活动 A 。
但在这种情况下,如果有人从 D 按下返回,那么也会重定向到 A 而不是 ob C。
我只想使用 FLAG_ACTIVITY_NEW_TASK 之类的标志。
【参考方案1】:
你可以试试..
@Override
public void onBackPressed()
// your code.
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
【讨论】:
【参考方案2】:试试,
@Override
public void onBackPressed()
Intent intent = new Intent(E.this, A.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();
【讨论】:
NEW_TASK
在这里不是必需的。 CLEAR_TOP
就足够了。【参考方案3】:
使用这个
@Override
public void onBackPressed()
Intent intent = new Intent(this, A.class);
startActivity(intent);
finish();
【讨论】:
这只会在E
的现有实例之上启动另一个A
实例。可能不是 OP 想要的。以上是关于返回堆栈和意图标志不起作用的主要内容,如果未能解决你的问题,请参考以下文章