返回堆栈和意图标志不起作用

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.html finish(); 其他活动所以如果你返回而不是直接到活动 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 想要的。

以上是关于返回堆栈和意图标志不起作用的主要内容,如果未能解决你的问题,请参考以下文章

kops 'protectKernelDefaults' 标志和 'EventRateLimit' 准入插件不起作用

动作视图意图不起作用

通知中的待处理意图不起作用

深层链接意图不起作用

更改默认短信应用意图在 android 10 上不起作用

ExpandableListView 父母中的不同切换意图 - 前一个不起作用