在应用程序退出时保存 Android 应用程序数据

2024-05-02

看来关于保存的信息量很大Activity状态,但我一直无法找到太多的信息应用 state.

我正在寻找一些设计想法来解决我遇到的问题。我正在开发一个具有相当大的数据模型(1-2 MB)的游戏。该模型存在于任何 Activity 之外,事实上有许多 Activity 都与其交互。这些活动是短暂的,一直来来去去。

目前,我在应用程序中保留了一个指向数据模型的指针,所有活动都通过它访问数据模型。如果我的应用程序被终止,我需要保存该数据模型,但是每次活动点击 onPause 时保存它都太慢了,这种情况在活动来来去去时经常发生。

我需要的是一种方法来确定我的应用程序(以及我的数据模型)是否正在被破坏。我已经广泛搜索了这个方法或回调,但一无所获。

我将不胜感激任何建议。


我无法找到太多关于查找应用程序状态的信息。

这是因为 Android 中不存在“应用程序状态”,就像 Web 应用程序中一样。

但每次活动点击暂停时保存它都太慢了

虽然你的整个数据模型可能是“1-2 MB”,但是数据量changes对于任何给定的变化,这将是其中的一小部分。使用后台线程,仅修改已更改的数据。

随着活动的进行,这种情况经常发生

听起来您的活动可能太多了。

我需要的是一种方法来确定我的应用程序(以及我的数据模型)是否正在被破坏

这是不可能的。你永远不会发现你正在被摧毁。 Android 可以并且将会在没有警告的情况下终止您的进程,无论是应用户请求(例如,强制关闭、任务终止)还是出于操作系统原因(例如,需要 RAM 来处理来电)。

欢迎您使用onUserLeaveHint(),在很多情况下,当整个应用程序失去前台时,都会调用它,但我当然不会指望它来完成像持久化数据模型这样重要的事情。

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

在应用程序退出时保存 Android 应用程序数据 的相关文章

  • 主题以编程方式设置。如何重新加载 Activity 来应用

    如何在不重新启动整个应用程序的情况下应用主题 如果我这样做startActivity getIntent finish 活动退出并且不重新启动 是否可以简单地重新启动 重新创建活动来应用主题 它的顺序不正确 finish intent ne
  • 有关 paddingStart 使用的冲突 lint 消息

    API 17 RTL 支持发布后 我将以下内容添加到我的清单中 android supportsRtl true 这导致 Lint 在我的视图中有 paddingLeft Right 的地方正确地向我发出这些警告 考虑添加 android
  • Android Ble GATT_ERROR 133 经常使用三星设备

    我正在研究 BLE 应用程序 我已经使用 Nexus Moto Samsung LG 等不同设备进行了测试 我仅在三星设备中收到 GATT 错误 133 三星 A5 2016 尝试连接 10 次 但只连接了 2 或 3 次 请帮助我 Non
  • Android平台源码中哪里可以找到版本信息

    Android 平台源文件中的版本信息在哪里找到 我尝试查找 设置 gt gt 中列出的有关手机的一些信息 显示的一些信息包括固件版本 模块编号 基带版本 内核版本 你可以给它办理登机手续platform build core versio
  • IntentService、Service 或 AsyncTask

    实现这一点的最佳方法是什么 我有一个 Android 应用程序 它将使用我的 python 服务器来允许两部手机之间进行轮流通信 回合意味着他们在一轮开始之前不能互相交谈 一旦他们发送一条消息 他们就不能发送另一条消息 直到对方做出回应 然
  • Notification.Builder 中 setGroup() 的用途是什么?

    我对目标的理解有些困难setGroup http developer android com reference android app Notification Builder html setGroup java lang String
  • Mesibo 通话 UI 未更新

    我正在尝试更改 Mesibo Call UI 的配置 但它并没有改变 我尝试如下 MesiboCallConfig mesiboCallConfig new MesiboCallConfig mesiboCallConfig backgro
  • 通过我的应用程序以编程方式插入新联系人,而不使用 Intent

    我正在使用一个应用程序 与手机联系人进行交互 我想将新联系人添加到我的手机联系人列表中 我已经尝试过以下代码 但它不起作用 void addContact Context ctx PreviewContactModel model Arra
  • Android 导航回到 Activity;不要重新加载父级

    我有一个场景 我单击 ListFragment 并启动一个新的 Activity 如下所示 public void onListItemClick ListView l View v int position long id super o
  • 无法从 com.android.aaptcompiler.ParsedResource@ef79973 提取资源

    无法从 com android aaptcompiler ParsedResource ef79973 提取资源 无法从 com android aaptcompiler ParsedResource 4c95ce87 提取资源 C Use
  • Hibernate saveOrUpdate 与更新与保存/持久

    我正在努力理解休眠方法之间的细微差别 saveOrUpdate update save persist 我知道网站上有一些类似的问题 Hibernate中不同的保存方式有什么区别 https stackoverflow com questi
  • 返回主要活动(意图)时传递数据我做错了什么?

    我是安卓新手 这可能是最简单的问题 但我不明白这里出了什么问题 我试图创建一个通过意图传递值的基本示例 因此 当我关闭第二个活动时 我需要将数据传递到主活动 这是代码 意图测试1 主要活动 public void onClick View
  • 从 Handler.obtainMessage() 获取什么参数

    我正在使用线程来执行一些 BT 任务 我正在尝试向 UI 线程发送消息 以便我可以基于我的 BT 线程执行 UI 工作 为此 我使用处理程序 但我不知道如何检索发送到处理程序的数据 要发送数据 我使用 handler obtainMessa
  • popupBackground 与 Material Design 相关的问题

    我一直致力于将我的应用程序更新为 Material Design 我有一个使用选项卡的应用程序 由于某种原因 每当我使用 android popupBackground 设置下拉菜单颜色时 它就会崩溃 我设置了一个带有选项卡的默认项目并使用
  • Android 发布到 facebook 墙,stream.publish 几天来就中断了

    我有很多使用 FB android sdk 发布的应用程序 github com facebook facebook android sdk 我所有使用 FB 的应用程序几天后就停止工作了 这必然是 FB 方面的更改或错误 因为我的应用程序
  • 在尝试使用 GPS 之前如何检查 GPS 是否已启用

    我有以下代码 但效果不好 因为有时 GPS 需要很长时间 我该如何执行以下操作 检查GPS是否启用 如果启用了 GPS 请使用 GPS 否则请使用网络提供商 如果 GPS 时间超过 30 秒 请使用网络 我可以使用时间或 Thread sl
  • 使用 AndroidX ExifInterface 从图像中检索 GPS EXIF 数据?

    我的目标是 Android 13 并使用新的照片选择器 https developer android com training data storage shared photopicker检索图像 例如 val photoPicker
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 从多个 TextView 中选择文本

    如何在android中从多个文本视图中选择文本 我已经尝试过以下代码 该代码一次仅适用于一个文本视图 我想一次性从许多文本视图中复制文本 android textIsSelectable true 你不能同时这样做 您需要在单个文本视图中设
  • 如何让用户在android列表视图中选择主题?

    我有一个带有两个标签的列表视图 标题和副标题 我想要深色和浅色背景作为用户选项 标题具有 textAppearanceMedium 副标题具有 textAppearanceSmall 我希望样式 MyTheme Dark 具有白色文本 My

随机推荐

  • 如何在 .net 中为 Google 云存储签名 url

    我想知道如何使用 net中的谷歌云存储类生成signurl 我已经根据要求创建了字符串 GET 1388534400 bucket objectname 但我现在想用 p12 密钥签署这个 url 然后想让它变得 url 友好 该库没有显示
  • 如何在 Symfony2 中使用 Doctrine OracleSessionInit 监听器?

    我正在使用 oracle 并且收到此错误 无法将数据库值 17 NOV 11 12 17 33 AM 转换为学说类型日期时间 预期格式 Y m d H i s 另外 我无法创建新行 因为 Oracle 抱怨日期时间格式 我知道mysql的日
  • 如何将 NaN 数组插入 numpy 二维数组

    我试图在二维数组中的特定位置插入任意数量的 NaN 值行 我正在将来自微控制器的一些数据记录在 csv 文件中并使用 python 进行解析 数据存储在 3 列 2D 数组中 如下所示 122 0 1 0 47 0 123 0 1 0 47
  • 计算链接上的点击次数(不带 onclick)[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我有诸如此类的链接 a href h
  • scipy 的 curve_fit 函数的尺寸问题

    我对 python 中的曲线拟合以及一般的 python 都很陌生 目前 我正在尝试使用 scipy 中的 curve fit 模块来拟合 4 个光谱峰 简而言之 我的文本文件中有两列数据 所以我的第一步是将数据导入到两个数组中 一个包含
  • spring roo vs appfuse 生成服务/dao 层

    我正在寻找有经验的用户对 spring roo 和 appfuse 的反馈 您认为逆向工程数据库表和生成服务层 dao 层和 jpa 实体哪一个更好 如果我没记错的话 spring roo 目前无法对数据库进行逆向工程 只是一个快速更新 通
  • Python lmfit:拟合 2D 模型

    我正在尝试将二维高斯拟合到一些灰度图像数据 该数据由一个二维数组给出 lmfit 库实现了一个易于使用的模型类 它应该能够做到这一点 不幸的是文档 http lmfit github io lmfit py model html http
  • 如何在 Svelte 3 中有条件地添加和删除 `use:` 属性?

    有没有一种方法可以优雅地有条件地添加和删除use Svelte 3 的财产 Example
  • 所有 SMTP 通信是否都发生在 25 以上? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 所有 SMTP 通信是否都在端口 25 上的域之间发送电子邮件 所有通信都不安全吗 明白使用像 Gmail 一样的通信是受 Gmail 服务器保护的
  • 无法设置 PageSetup 类的 PaperSize 属性

    我正在尝试使用 VB NET 打印 Excel 电子表格 但出现错误 无法设置 PageSetup 类的 PaperSize 属性 这是我的代码 Dim oldCI As System Globalization CultureInfo S
  • 动态向表变量添加 50 列

    我想向定义为变量的表添加大约 50 列 这些列的名称来自另一个表 基本上它们只是数字 DEPA KEY 部门键 是否可以使用循环或类似的东西动态添加这些列 表定义为变量 这里我想动态添加 50 列 DECLARE USERS TABLE U
  • 如何使用 WEBrick 执行 Ruby 代码而不是将代码转储到浏览器?

    当我在浏览器中运行程序时遇到问题WEBrick服务器 http ruby doc org stdlib 2 1 1 libdoc webrick rdoc WEBrick html 它显示了 2loop rb 文件中编写的代码 当我跑步时r
  • 区分 AccessoryView 和 Cell Content 上的点击,Apple 会允许吗?(iPhone)

    我想知道是否有一个委托方法可以实现 让我区分单元格内容视图上的点击和右侧的公开符号 我想根据用户点击单元格的位置将用户发送到两个不同的视图 我认为该事件通常是通过测试 tableView 是否为以下内容来捕获的 自行编辑 我只记得在闹钟和地
  • 消息:未定义索引:$_SERVER 中的 REMOTE_HOST

    当我尝试检索远程用户的主机名时 为什么会出现此错误 Message Undefined index REMOTE HOST 在阅读文档时 我了解到它需要在 httpd conf 中启用 但我不确定 httpd conf 中需要编辑什么 这不
  • 如何在 PyCharm 中启用 flake8 的自动代码格式化

    我使用 Tox 运行单元测试 并使用 flake8 命令检查代码格式错误 每次我在 PyCharm 中编码时 我都会运行 tox 然后意识到我有一堆烦人的格式错误 我必须返回并手动修复 我希望 PyCharm 自动格式化代码 根据 flak
  • 在 VueJs 中使用上下键自动完成搜索

    除了自动完成搜索之外 我还想添加功能以允许使用 VueJs 按下 向上键功能 我的模板如下所示 div h2 Todos h2 div class autocomplete div div
  • 在 Postgres 9.0+ 中使用 PL/pgSQL 循环表

    我想循环遍历所有表以计算每个表中的行数 以下查询给我一个错误 DO DECLARE tables CURSOR FOR SELECT tablename FROM pg tables WHERE tablename NOT LIKE pg
  • 使用 rollend 滚动 data.table

    我无法获取roll Inf定义时工作rollends FALSE When rollends未设置或设置为TRUE 我看到了预期的结果 我将不胜感激任何建议 library data table dt1 data table Date se
  • 如何修复 Eslint 错误“prefer-destructuring”?

    我想像这样缩短 ES6 中的对象文字 const loc this props local 原因是loc foo 比打字容易得多this props local foo 但现在 ESLint 抱怨道 使用对象解构 prefer destru
  • 在应用程序退出时保存 Android 应用程序数据

    看来关于保存的信息量很大Activity状态 但我一直无法找到太多的信息应用 state 我正在寻找一些设计想法来解决我遇到的问题 我正在开发一个具有相当大的数据模型 1 2 MB 的游戏 该模型存在于任何 Activity 之外 事实上有