首页 > 解决方案 > 可以在 Android Activity 的 onPause() 中运行长代码吗?

问题描述

“长代码”是指更新 SQLite 数据库的许多行。我已经实现了这一点。但是一些用户(只有少数)抱怨他们的数据没有更新。显然,只有当用户按下后退按钮时才会出现问题。也许 Activity 在完成 onPause() 中的代码之前就死了?这是正常行为吗?

提前致谢。

标签: androidandroid-sqliteonpause

解决方案


直接来自有关 Activity 生命周期的文档

onPause() 执行非常短暂,不一定有足够的时间来执行保存操作。因此,您不应该使用 onPause() 来保存应用程序或用户数据、进行网络调用或执行数据库事务;在该方法完成之前,此类工作可能无法完成。相反,您应该在 onStop() 期间执行重负载关闭操作。有关在 onStop() 期间执行的合适操作的更多信息,请参阅 onStop()。有关保存数据的更多信息,请参阅保存和恢复活动状态。

基本上:是的,你不应该在onPause.


推荐阅读