gpt4 book ai didi

android - 从最近和历史中排除 Activity

转载 作者:行者123 更新时间:2023-11-30 00:48:51 25 4
gpt4 key购买 nike

实际上,我对 android 自定义选项卡有一个直接的问题。但尽管如此,我还是会概括我的问题。假设我有 ActivityAActivityB . ActivityA - 是一个外部的,所以我们从 Intent 启动它:

Intent intent = customTabsIntent.intent;
intent.setData(requestUri);
intent.putExtra(CustomTabsIntent.EXTRA_TITLE_VISIBILITY_STATE, CustomTabsIntent.NO_TITLE);
mContext.startActivity(intent);

从这里我们可以看到 ActivityA - 实际上是一个自定义选项卡 Activity 。当事情完成后,我启动 ActivityB .我要ActivityA从任务历史中消失,我可以通过应用标志 Intent.FLAG_ACTIVITY_NO_HISTORY 来实现按照我的 Intent 。但是这种方法会引起问题,因为当用户切换到最近使用的应用程序或转到其他应用程序时 - ActivityA永远消失。当然 - 这就是标记无历史记录的方式。但我想要不同的流程,我想要ActivityA仅在 ActivityB 时消失已启动,推出。有什么想法可以实现吗?

附言我需要完成 ActivityA ,它是通过 Intent 启动的,我无法访问它的代码,也无法调用 finish() .

最佳答案

我不认为你可以通过使用 NO_HISTORY 标志来做到这一点,因为 ActivityA正在启动,您无法控制它。

但是,您应该能够实现您的目标(不能从 ActivityB 返回到 ActivityA,方法是覆盖 ActivityB 中的 BACK 按钮并让它返回到 ActivityA 下面的任何内容任务堆栈。

假设ActivityC是开始 ActivityA 的那个, 你可以在 ActivityB 中做这样的事情:

@Override
public void onBackPressed() {
// Direct user back to ActivityC
Intent intent = new Intent(this, ActivityC.class);
// Add flags to ensure that we reuse the existing instance of
// ActivityC and that we clear any other activities above ActivityC
// from the stack.
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP |
Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intent);
}

关于android - 从最近和历史中排除 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41382550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com