Android - 清除导航 Backstack

2023-12-02

我有4页。

从第 1 页 > 第 2 页 > 第 3 页 > 第 4 页。

用户到达 page_3 并单击按钮后,就会导航到 page_4。单击按钮后,我想清除所有导航历史记录,以便当用户返回 page_4 时,应用程序退出而不是返回 page_3。

我试过了:

    Intent intent = new Intent(this, page_4.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    finish();

但什么也没发生。我仍然可以返回到 page_3、page_2 等。如何才能使当用户单击 page_3 上的按钮时,他转到 page_4 并且从 page_4 不应该有任何导航历史记录?


我不确定这些方法是否适合您。第一种方法是添加FLAG_ACTIVITY_TASK_ON_HOME当您从 page_3 转到 page_4 时:

Intent intent = new Intent(this, page_4.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_TASK_ON_HOME);
startActivity(intent);

因此,一旦您在 page_4 中按“返回”按钮,它会首先将您引导至 HOME 活动(MainActivity),然后您可以再次按“返回”按钮从该活动中退出应用程序。

来自文档:

如果在传递给的 Intent 中设置Context.startActivity(),此标志将导致新启动的任务被放置在当前主活动任务的顶部(如果有)。也就是说,从任务中按回总是会让用户返回主页,即使这不是他们看到的最后一个活动。这只能与FLAG_ACTIVITY_NEW_TASK.

第二种方法是,设置android:noHistory="true"在清单中的活动内。将此属性应用于 page_1 到 page_4。但这种方法有两个缺点。首先,您的 Activity 完全没有后台堆栈。其次,一旦您按下 HOME 按钮或接到来电,您使用此属性设置的活动就会被销毁。我从来没有找到这个主题,所以请CMIIW。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 清除导航 Backstack 的相关文章

  • 有多少种方法可以将位图转换为字符串,反之亦然?

    在我的应用程序中 我想以字符串的形式将位图图像发送到服务器 我想知道有多少种方法可以将位图转换为字符串 现在我使用 Base64 格式进行编码和解码 它需要更多的内存 是否有其他可能性以不同的方式做同样的事情 从而消耗更少的内存 现在我正在
  • 如何在 Eclipse 中使用其他外部 jar 依赖项创建不可运行/不可执行的 jar

    我无法通过 Eclipse 导出向导创建普通的 jar 不可运行 不可执行 它仅创建 jar 文件 但不会导出依赖的 jar 从而在从其他类调用导出的 jar 的方法时出现错误 请帮助 非常感谢 kurellajunior的建议 它是通过使
  • 如何将 Observable>> 转换为 Observable>

    我陷入了如何将以下可观察类型转换 转换为我的目标类型的困境 我有以下类型的可观察值 Observable
  • 发生错误。请参阅日志文件 - eclipse juno

    每当我启动 Eclipse Juno 时 都会出现错误 发生错误 请查看日志文件 C Program Files eclipse configuration 1362989254411 log 有的网站说卸载jdk重新安装 我这样做了 但没
  • 在 Java 中将弯音发送到 MIDI 音序器

    我了解启动和运行 MIDI 音序器的基础知识 并且希望能够在播放过程中增加 减小序列的音高 但弯音是发送到合成器而不是音序器的消息 我尝试将音序器的接收器设置为合成器的发射器 当我发送弯音短消息时 音序器保持相同的音调 但随后合成器以新的弯
  • Java:java.util.ConcurrentModificationException

    我正在制作 2D 目前正在研究用子弹射击 子弹是一个单独的类 所有项目符号都存储在称为项目符号的数组列表中 当它超出屏幕一侧 Exception in thread main java util ConcurrentModification
  • 未解决的包含:“cocos2d.h” - Cocos2dx

    当我在 Eclipse 中导入 cocos2dx android 项目时 我的头文件上收到此警告 Unresolved inclusion cocos2d h 为什么是这样 它实际上困扰着我 该项目可以正确编译并运行 但我希望这种情况消失
  • 屏幕开/关检测

    在这里 我试图确定屏幕是否打开 但按下电源锁定 解锁按钮时它似乎不起作用 应用程序运行没有错误 但 if else 中的代码似乎没有效果 Edited现在代码可以工作了 谢谢Olgun 但媒体播放器播放不会停止 并且每次在屏幕上 离屏时都会
  • SDK >=26 仍需要 mipmap/ic_launcher.png?

    在 Android 中 有两种指定启动器图标 可以说是应用程序图标 的方法 老 方式 在 mipmap 文件夹中指定不同的 png 文件 通常命名为 ic launcher png 但可以通过以下方式设置名称android icon mip
  • Glass 语音命令给定列表中最接近的匹配项

    使用 Glass 您可以通过 确定 Glass 菜单启动应用程序 它似乎会选择最接近的匹配项 除非命令相距数英里 并且您可以明显看到命令列表 无论如何 是否可以从应用程序内或从语音提示 在初始应用程序触发后 给出类似的列表并返回最接近的匹配
  • 如何将 arraylist 从 servlet 传递到 javascript?

    我通过在属性中设置数组列表并将其转发到 jsp 来从 servlet 传递数组列表 Servlet ArrayList
  • 如何构建自定义摄像机应用程序?

    我正在尝试开发一个自定义摄像机录像机 当我的设备在 Activity 的 beginRecording 中执行 start MediaRecorder 方法时 应用程序崩溃 我不知道出了什么问题 因为我遵循谷歌API指南 http deve
  • 如何在Java媒体框架中学习.wav持续时间?

    我正在尝试使用 java 媒体框架将 mov 文件与 wav 文件合并 因此我需要知道它们的持续时间 我怎样才能做到这一点 任何想法 将不胜感激 您可以使用以下方式了解声音文件的持续时间 即 VitalyVal 的第二种方式 import
  • Java:由 HTTP 连接创建的等待连接线程存活时间很长

    我有一个服务器端代码 用于检查 SOAP 服务是否已启动 代码如下 String response while response length 0 try final URL url new URL DummySoapServiceURL
  • 公共方法与公共 API

    在干净的代码书中 有一个观点是 公共 API 中的 Javadocs 同样 Effective java 一书也有这样的内容 项目 56 为所有公开的 API 元素编写文档注释 所以这就是我的问题 所有公共方法都被视为公共 API 吗 它们
  • 使用 DataBindingComponent 的 Inflate 方法

    当 Glide 成功渲染图像后 我在更新文本视图时看到此错误 致命异常 java lang IllegalStateException 必需 CustomBinding 类中的 DataBindingComponent 为 null 绑定适
  • 使用Intent拨打电话需要权限吗?

    在我的一个应用程序中 我使用以下代码来拨打电话 Intent intent new Intent Intent ACTION CALL Uri parse startActivity intent 文档说我确实需要以下清单许可才能这样做
  • 失败时石英重试

    假设我有一个这样配置的触发器
  • 防止Java实例化的正确方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 我应该如何在 Android 上使用 Retrofit 处理“无互联网连接”

    我想处理没有互联网连接的情况 通常我会运行 ConnectivityManager cm ConnectivityManager context getSystemService Context CONNECTIVITY SERVICE N

随机推荐

  • php preg_replace - 保留指定字符+外语字母[重复]

    这个问题在这里已经有答案了 我需要一个从字符串中删除所有字符 未在模式中列出 但保留外语字母 的函数 我知道 preg replace 有 p 模式 但由于某种原因我无法让它工作 我使用这个函数来删除字符串中的所有垃圾 main conte
  • 动态图片绑定vue

    我想做与这里相同的事情 但我想使用 images sample 作为参数 例如props images sample
  • Schema.org:使用什么,微数据还是 JSON-LD?

    数据标记Schema org对于 Google Yahoo Bing 和 Yandex 等搜索网站来说 片段非常适合 然而 我认为大多数网站管理员都使用微数据 但几乎从不使用JSON LD 最近了解了JSON LD 有一些疑惑 我可以在没有
  • SQL:如何按两列的唯一组合进行分组?

    Context A table message有列from user id and to user id 用户应该看到最近的对话以及显示的最后一条消息 一个对话由多条消息组成 这些消息具有相同的用户 ID 组合 用户发送消息 用户接收消息
  • Python 相当于 MATLAB 的“ismember”函数

    经过多次尝试优化代码后 最后一个资源似乎是尝试使用多个内核运行下面的代码 我不确切知道如何转换 重新构造我的代码 以便它可以使用多个内核运行得更快 如果我能获得实现最终目标的指导 我将不胜感激 最终目标是能够针对数组 A 和 B 尽可能快地
  • 在 JavaScript 中用正则表达式替换字符串

    一个特定的正则表达式现在困扰着我 我只是想更换范围 100像这样的字符串 var string commonstringblabla b range 100 b stringandsoon with commonstringblabla b
  • Git 预提交挂钩

    我是 git hooks 的新手 我无法理解下面的预提交挂钩 谁能告诉我这是如何工作的 这里我怀疑 grep 将如何在提交的文件中发生 因为我们不会将这些文件带到任何地方 抱歉 如果我问错了问题 但请帮助我理解 git hooks usr
  • 外部服务的 Kubernetes 入口规则

    这个问题类似于question但这更多的是围绕可以配置的规则中的路径 入口应该能够处理内部服务和外部服务 外部服务的 URL 应该类似于http 主机名 80 es 当用户点击此 url 时 应将其重定向到外部服务 服务定义和入口规则配置如
  • 在android中从sdcard中删除文件

    我正在制作一个应用程序 其中我必须删除 SD 卡中最近添加的 mp3 文件 歌曲保存的格式为 Songhello 17 26 amr where 17 26是添加歌曲的时间 谁能帮我如何删除SD卡中最近添加的文件 我的意思是说我想删除时间意
  • 如何在涉及链接的 Access 中连接多行?

    我的 Access 数据库存在以下问题 我有 3 个表 分别是 tblComponents tblErrors 和 linkComponentsErrors 这是一种多对多关系 这意味着一个组件可以有多个错误 而一个错误可以有多个组件 这些
  • 数字文字末尾的 F 和 D 是什么意思?

    我见过一些这样的符号 但我找不到任何奇怪的地方 double d 5D float f 3 0F 5后面的D和F到底是什么意思 意味着这些数字分别是双精度数和浮点数 假设你有 void foo int x void foo float x
  • 如何重新排列 PDF 文件的页面顺序?

    我最后正在生成目录 我想将目录移动到开头 假设我的 PDF 有 16 页 目录从第 13 页开始到第 15 页结束 我想将目录移至第二页 这样第一页仍为第 1 页 最后一页仍为第 16 页 这段代码没有给我我想要的 public void
  • 如何从 aframe 中的 3D 对象获取边界框信息?

    我正在开发一个 aframe 项目 该项目涉及将未知大小的 3D 对象加载到我的场景中 当然 在将对象放入场景之前 我希望将其大小调整到一定的大小 例如固定高度 但是如何从对象的边界框中提取宽度 高度和深度等信息呢 您需要在此处使用 A F
  • 我如何在原型工作中得到“this = this”

    好吧 偷看 所以我知道弄乱原型是不好的做法 但无论如何 Array prototype rev function this reverse 工作正常 更新源数组变量 ary 如预期 例如 ary 123 456 ary rev result
  • 在 ggplot2 中用梯度和变化的图例特征标记线条

    我正在使用以下数据查看 1954 年至 2000 年每月最高气温的变化 http pastebin com 37zUkaA4 为了清楚起见 我决定只在图表上绘制每个月的 abline 我的代码如下 OxTemp Month lt facto
  • 如何删除 sed 中第一个模式后面的空格

    我有一个文件 file txt Name 6 1 4 Float Time 453802 464204 466345 464481 466131 464283 465065 462561 Name 6 1 4 Logic Good Time
  • 在 Outlook 中触发外部 API 调用,回复来自特定电子邮件 ID 的电子邮件

    当我回复来自特定发件人的电子邮件时 我尝试触发外部 API 为了描述用例 我们有一个内部平台 人们可以在其中提出具体问题 专家会回答这些问题 类似于堆栈溢出 我们希望为专家回答问题启用 Outlook 功能 这将使专家能够回复电子邮件通知
  • 使用信号和 sigpipe

    我正在做一项作业 涉及编写一个程序来使用 fork 进程 信号和选择来处理数据 计算 pi 我现在正在处理信号 我想我想做的是使用 SIGPIPE 因此如果程序捕获它 它会尝试再次写入管道 如果进程尝试写入没有读取器的管道 将会发送 SIG
  • 指定用作参考时区的时区

    根据前两个答案 问题与最初发布的一样不清楚 因此我完全重写它 以下问题仅涉及如何存储数据以及存储什么数据 而与检索时转换数据的形状或形式无关 因此 在 SELECT 处转换为所需的时区并不是一个合适的答案 将值插入到带有时区的时间戳字段时
  • Android - 清除导航 Backstack

    我有4页 从第 1 页 gt 第 2 页 gt 第 3 页 gt 第 4 页 用户到达 page 3 并单击按钮后 就会导航到 page 4 单击按钮后 我想清除所有导航历史记录 以便当用户返回 page 4 时 应用程序退出而不是返回 p