android - 可以在 Android Activity 的 onPause() 中运行长代码吗?
问题描述
“长代码”是指更新 SQLite 数据库的许多行。我已经实现了这一点。但是一些用户(只有少数)抱怨他们的数据没有更新。显然,只有当用户按下后退按钮时才会出现问题。也许 Activity 在完成 onPause() 中的代码之前就死了?这是正常行为吗?
提前致谢。
解决方案
直接来自有关 Activity 生命周期的文档:
onPause() 执行非常短暂,不一定有足够的时间来执行保存操作。因此,您不应该使用 onPause() 来保存应用程序或用户数据、进行网络调用或执行数据库事务;在该方法完成之前,此类工作可能无法完成。相反,您应该在 onStop() 期间执行重负载关闭操作。有关在 onStop() 期间执行的合适操作的更多信息,请参阅 onStop()。有关保存数据的更多信息,请参阅保存和恢复活动状态。
基本上:是的,你不应该在onPause
.
推荐阅读
- docker - 如何使用 --format 解析包含点的属性以用于 docker 事件输出?
- javascript - Facebook Marketing API 广告素材
- java - 调用 MediaCodec.configure() 时出现“JNI 错误:GetStringUTFChars 收到 NULL jstring”
- c++ - 为什么是这个结果?
- python - 匹配另一个数据框中的文本并用识别的实体填充缺失的列
- selenium - 使用硒线时的 ERR_PROXY_CONNECTION_FAILED
- javascript - 处理联系表格中的错误 - 获得正确的功能
- reactjs - ReactJS 中的多个复选框选项
- excel - 在excel中复制一列并将每个条目/单元格加倍。如何?
- python - Django rest 框架 - 可写(创建,更新)双嵌套序列化程序