react-native - 关闭反应本机应用程序时运行清理
问题描述
在我的 react-native 应用程序代码中:
- 我正在监控 AppState 的变化
- 当 AppState 更改为“inactive”或“background”时,我将大约 2000 个键/值对数据写入 AsyncStorage
- 当应用程序启动时,我读取了这些数据
当我在 android 上测试应用程序时(尚未在 iOS 上测试):
- 如果我最小化应用程序,数据将按预期写入。我可以通过在最小化应用程序后关闭应用程序并重新启动它来看到
- 但是,如果我单击导航栏中的“最近”按钮(将 AppState 更改为“非活动”)并立即单击应用程序右上角的“X”按钮,数据似乎没有写入,或者至少不是全部(我没有检查所有 2000 个值,只是其中的几个)。如果我尝试只写几个值,它们会被写
问题:
- 对上述行为的解释似乎很简单:在我点击“关闭”之前,应用程序有足够的时间执行一些操作,但没有写入 2000 个值。有没有办法在应用程序关闭之前执行写入?
解决方案
实际上,不建议执行任何异步功能或任何可能花费太长时间的事情。因为您无法控制写入 2000 个值需要多长时间。该应用程序可以进入后台,SO 可以终止您的应用程序的进程。当应用程序在后台时是控制它的 SO。
推荐阅读
- flutter - 我似乎无法理解的错误
- vue.js - 从 Vue 隐藏对象属性
- java - Java 异常只打印消息
- visual-studio-2019 - 无法安装 Visual Studio 2019 - 引导安装程序失败
- excel - 隐藏列切换
- python - 如何添加一个整数值上升每个项目python
- twitter - 使用 JSON 的 Hugo Shortcode 抛出“坏字符 U+0022 错误”
- python - 如何自动从 Heroku 上的 git 子模块中提取最新提交?
- json - 有没有办法将传入的 JSON 数据与本地 JSON 数据进行比较?
- redis - 有没有办法使用 Redis 将属性与聊天消息相关联?