如何将应用程序返回堆栈保存到包中?

2023-12-23

我想保存应用程序的状态,以便当从关闭状态重新打开它时,最后一个片段可见并且保留返回堆栈。我想在每次关闭应用程序时保留此状态,而不仅仅是在方向更改或系统终止应用程序以释放资源时(就像使用时的情况一样)onSaveInstanceState()/onRestoreInstanceState().

到目前为止,我已经能够通过将状态保存到 SharedPreferences 并稍后恢复来按计划恢复前一个片段及其状态。但是,这不会保留片段后退堆栈,因此当用户加载应用程序并按后退按钮在应用程序流程中“向上”移动时,应用程序会退出而不是向上移动。

此时我需要的是能够访问应用程序返回堆栈并在必要时将其保存到捆绑包中,就像系统在onSaveInstanceState()。我已经阅读了文档FragmentManager.saveFragmentInstanceState()但我不知道如何用它来实现我的目标。有人能指出我正确的方向吗?

我正在使用 Android 兼容性库中的片段实现。


据我所知Android系统不会让你获取任务的返回堆栈,它只能give you http://developer.android.com/reference/android/app/ActivityManager.html#getRunningTasks%28int%29顶端Activity所有正在运行的任务。因此,您需要实施自己的机制来维护Activities后栈。实施LocalActivityManager http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.2_r1.1/android/app/LocalActivityManager.java/可能会帮助你,特别是它saveInstanceState() http://developer.android.com/reference/android/app/LocalActivityManager.html#saveInstanceState%28%29方法。所以你可以做类似的事情并打电话onSaveInstanceState(Bundle)每当您需要时,您的后台堆栈中的活动,然后坚持Bundle(例如,在文件中)。如果你使用Fragments那么你还需要维护他们的后堆栈。

也许,android:alwaysRetainTaskState http://developer.android.com/guide/topics/manifest/activity-element.html#always可能会帮助您解决问题,而不是深入管理后堆栈。

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

如何将应用程序返回堆栈保存到包中? 的相关文章

  • 使用新语法应用 Android Gradle 插件

    如何使用新的 Gradle 插件语法应用 Android 插件 plugins id version 代替 buildscript dependencies classpath com android tools build gradle
  • 将项目升级到Android Studio 1.0(Gradle问题)

    首先 我对 android 开发 android studio gradle 非常陌生 所以如果我问了一个愚蠢的问题 请原谅我 我的团队一直在使用 android studio 的 beta 版本开发一个项目 我刚刚安装了新版本 1 0 并
  • 在我的 Android 应用程序中使用 ServerValue.TIMESTAMP

    我读过很多相关的 stackoverflow 问题 ServerValue TIMESTAMP 但我不知道如何在我的应用程序中使用它 我需要获取帖子创建的时间戳 时间戳应该添加到与帖子的 uid 作者等相同的位置 代码片段其中写这篇文章Fi
  • 我在哪里可以获得可靠的熵来源(真正的随机性字节[])?

    目前 我正在寻找一种方法来增加随机性的质量 in my Android应用程序 纸牌游戏 之前 估计对于我的情况 52 排列 至少需要 226 位熵 226 个随机位 我打算用这个byte 作为种子SecureRandom SecureRa
  • 从 arraylist 和 hashmap 中删除重复项

    我有一个数组列表 其中包含付款人的姓名 另一个数组列表包含每次付款的费用 例如 nameArray 尼古拉 劳尔 洛伦佐 劳尔 劳尔 洛伦佐 尼古拉 价格数组 24 12 22 18 5 8 1 我需要将每个人的费用相加 所以数组必须变成
  • 需要使用手机后退按钮返回 Web 视图的帮助

    这是我的代码 package com testappmobile import android app Activity import android os Bundle import android view KeyEvent impor
  • android中根据屏幕尺寸计算图像尺寸

    我正在尝试根据屏幕尺寸计算图像高度和宽度 我从后端获取 5 x 7 尺寸的图像 为了将像素乘以 72 进行转换 我有 360 X 504 尺寸的图像 对于 360 X 504 我的动态透明矩形区域将显示为 1 223 x 1 179 即 8
  • 不变违规:requireNativeComponent:在 UIManager 中找不到“RNSVGSvgViewAndroid”

    我对标题中提到的错误感到头疼 我正在使用react native gifted charts https www npmjs com package react native gifted charts v 1 0 3 https www
  • Android:如何使用后台线程?

    我开发了一个应用程序 它从互联网获取内容并相应地在设备的屏幕上显示它 该程序运行得很好 就是有点慢 加载并显示内容大约需要 3 4 秒 我想将获取内容并将其显示在后台线程中的所有代码放在一起 当程序执行这些功能时 我想显示一个进度对话框 你
  • Android 版 jTwitter 授权错误

    我在我的 Android 应用程序中使用 jTwitter 库 直到前天一切都运转良好 但今天遇到异常 服务提供商响应错误 301 请帮助我 这是堆栈跟踪 02 21 21 07 27 258 E AndroidRuntime 4013 F
  • 如何在 NumberPicker 中一次显示 3 个以上的值

    我正在创建一个数字选择器 如下图所示 但如果有可用空间 我想显示 3 个以上的值 该选择器有 20 个项目 并且有足够的空间来显示 3 个以上的值 这可以使用 NumberPicker 来完成吗 只需以编程方式设置numberPicker
  • Jetpack 导航:如何从一个嵌套图的子级导航到另一个嵌套图的子级?

    导航结构 MainActivity nav root HomeFragment AuthNestedGraph nav auth BeforeOtpFragment home OtpFragment ProfileNestedGraph n
  • TextInputLayout 对于在 EditText 中以编程方式给出提示没有效果

    我有一个 EditText 它的父级是 TextInputLayout 我试图以编程方式为 EditText 提供提示 不在布局中 在这种情况下 文本输入提示动画不起作用 它像简单的 EditText 一样工作 有人可以建议如何处理它吗 下
  • 屏幕开/关检测

    在这里 我试图确定屏幕是否打开 但按下电源锁定 解锁按钮时它似乎不起作用 应用程序运行没有错误 但 if else 中的代码似乎没有效果 Edited现在代码可以工作了 谢谢Olgun 但媒体播放器播放不会停止 并且每次在屏幕上 离屏时都会
  • 如何构建自定义摄像机应用程序?

    我正在尝试开发一个自定义摄像机录像机 当我的设备在 Activity 的 beginRecording 中执行 start MediaRecorder 方法时 应用程序崩溃 我不知道出了什么问题 因为我遵循谷歌API指南 http deve
  • Android Root 执行 su 带参数

    我在使用参数执行 su 时遇到问题 包含空格 我的 Command java 看起来像这样 public class Command Process process public String executeCommand String c
  • Android AdMob:addView 在返回活动之前不会显示广告

    我正在尝试在游戏顶部添加横幅广告 我的活动使用带有自定义 SurfaceView 的relativelayout 我希望广告与 SurfaceView 重叠 广告会加载并可点击 但不会绘制到屏幕上 当我离开活动并返回时 会绘制广告 例如 通
  • Fragment 生命周期和在不存在的 Fragment 上调用 onCreate 的问题

    我正在 Android 中测试片段 并且片段生命周期有一些令人困惑的行为 我有一个活动 在横向和纵向模式下使用 xml 布局 我有一些代码可以访问在片段布局之一中定义的 EditText 对象 如果我以横向模式启动应用程序 一切都会正常 我
  • 为什么带处理程序的连续自动对焦相机不允许切换相机闪光灯?

    到目前为止我所做的 我已经实现了用于读取二维码的自定义相机 需要继续聚焦相机以获得更好的二维码读取 我的问题当我使用处理程序每 秒聚焦一次时 相机闪光灯开 关按钮不起作用 或者打开和关闭相机闪光灯需要太多时间 当我删除每秒自动对焦相机的代码
  • R.java是手动修改的!恢复到生成的版本

    我在布局中添加了一个 xml 文件 之后这个错误就来了 但问题是我还没有接触过 R java 文件 现在 在我的新活动中 我要将其内容视图设置为我新创建的 xml 文件 但是当我执行 R layout 时 新创建的 xml 不会出现在建议中

随机推荐

  • 使用一个 UIViewController 和两个 XIB 处理 iPad 上的方向变化

    我想用一个 UIViewController 和两个 XIB 例如 MenuView 和 MenuViewLandscape 来处理 iPad 应用程序上的方向更改 那么 在 MenuViewController 的 willRotateT
  • 使用 Prism 和 IsNavigationTarget 处理嵌套视图,可能返回 false

    I m trying to find solution for the following problem I have a WPF app I used mvvm and prism most recent version 7 to bu
  • 如何在 C++ 中退出时运行函数

    我有一个函数 我想在程序退出时运行 void foo std cout lt lt Exiting lt lt std endl 如何将其注册为在程序存在时运行 无论程序何时以及为何退出 由于信号 exit 调用等 您可以使用适当命名的st
  • 如何避免内存泄漏? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • __doPostBack 在 Firefox 中不起作用

    doPostBack 在 firefox 3 中不起作用 尚未检查 2 一切在 IE 6 和 7 中都运行良好 甚至在 Chrome 中也能运行 这是一个带有 OnClick 事件的简单 asp LinkBut ton
  • 让子弹朝玩家面对的方向发射

    当我意识到他们只会走时 我刚刚得到一些帮助来弄清楚如何让我的玩家发射子弹 有点预料到这一点 但因为只有 y 的移动值 我不知道如何让子弹朝玩家面对的方向发射 我知道该怎么做 但我只是不知道该怎么做 我想我可以以某种方式使用这个游戏中的光标和
  • React-native fbsdk 构建错误

    我在运行命令react native run android 或 gradlew build 时收到以下错误 react native fbsdk generateReleaseResValues UP TO DATE react nati
  • 等待用户在 Node.js 中输入内容

    我了解 Node js 中异步事件的基本原理 并且正在学习如何以这种方式编写代码 但是 我遇到了以下情况 我想编写偶尔会暂停以供用户输入的代码 该程序并非旨在用作服务器 尽管目前它用于命令行 我意识到这是 Node 的非典型用法 我的目标是
  • win 7 上可以设置单步陷阱吗?

    我正在做所谓的 seh hooking 实际上它改变了内存区域的权限并在访问时捕获异常 因此它可以挂钩该函数 它使用单步陷阱 如下所示 info gt ContextRecord gt EFlags 0x100 恢复保护PAGE NOACC
  • 如何在 Android 应用程序中使用 OSM 地图?有没有关于在 android 中使用 OSM 的教程?

    我正在寻找教程 手册或步骤 将开放街道地图包含到我的 Android 应用程序中 我发现的只是一个具有更多功能的大项目 否则很多问题都没有关于 如何 的正确结论 有没有合适的博客 网站或文档可供新手参考 我不知道有任何教程 但这是我使用 O
  • Excel 列表框仅显示当前日期输入的条目

    我想请求您帮助仅显示当前日期的列表框条目 我这里有一个示例 其中包含先前日期输入的条目以及今天日期的条目 每次我输入另一个条目时 之前日期的条目仍然会显示 所以我想实现的是 当我今天输入另一种颜色时 我将看到今天输入的颜色 不包括之前日期输
  • Azure 流分析 -> 我对路径前缀到底有多少控制权?

    我想根据来自事件中心的一些数据设置前缀 我的数据是这样的 id 1234 我想编写一个类似于以下内容的 blob 前缀 foo id guid 最终我希望每个 id 都有一个 blob 这将有助于它如何被下游的一些事物消耗 我没有看到创建与
  • 使用 PHP 将数组插入 MySQL 数据库

    我想将以下数组存储在数据库中 insData array uid gt fbme id first name gt fbme first name last name gt fbme last name email gt isset fbm
  • 如何make_shared派生类?

    我想使用make shared
  • 在 x64 模式下运行时可以生成 x86 哈希值吗?

    本周 当我的代码托管在 x64 进程中时 我遇到了一个错误 我正在使用哈希值进行查找 并将该哈希值存储在数据库中 过去生成的哈希值是 x86 哈希 现在生成 x64 哈希 我收到错误 因为查找值不再匹配 我对此非常怀疑 但我想我还是要问一下
  • 检查输入的类型是否为“文本/数字/电子邮件/等”?

    我需要使用 Javascript 不是 jQuery 检查给定的输入元素是否可由用户使用键盘写入 我想排除复选框 单选按钮 重置 提交 图像等 有没有一种简单的方法可以在不列出所有输入类型的情况下做到这一点 这是我现在的代码 if elem
  • Automator + Applescript 如何:新桌面(在其中打开日历和提醒)

    标题就是我想要达到的目标 在 Automator 中 我尝试简单地记录打开新桌面 然后打开其中的应用程序的操作 但我得到了 Watch Me Do 操作遇到错误 检查操作的属性并尝试再次运行工作流程 此外 如果我这样做 记录的动作是 单击桌
  • 如何在ASP.NET开发的Azure Web App上获取客户端的IP地址?

    我开发了一个 Web 应用程序 该应用程序作为 Web 应用程序部署在 Azure 上 我需要获取客户端的 IP 地址 以便我可以使用 GeoIP API 获取客户端连接所在的国家 地区 那么我的问题是 当客户端发送查看主页的请求时 如何获
  • 如何删除cassandra物化视图中的一行?

    我有一个 cassadra 命名空间 其中包含一个表和一个物化视图 基表中的一行被删除 但更改并未传播到物化视图 我不知道发生这种情况的确切原因 所以现在我被MV中的那一行困住了 无法删除它 有任何想法吗 是的 物化视图仍然很不完善 两个主
  • 如何将应用程序返回堆栈保存到包中?

    我想保存应用程序的状态 以便当从关闭状态重新打开它时 最后一个片段可见并且保留返回堆栈 我想在每次关闭应用程序时保留此状态 而不仅仅是在方向更改或系统终止应用程序以释放资源时 就像使用时的情况一样 onSaveInstanceState o