我正在编写一个任务列表并拥有 Project 对象,其中包含所有任务(和元数据)。我使用操作日志,因此当任务发生变化时,我不会立即将其保存到数据库中,而是将其保留在内存中,以便在活动完成时转储到数据库中。 Activity 的 onDestroy 方法是执行此操作的最佳位置:如果没有调用 onRetainNonConfigurationInstance 方法,我将启动服务来保存项目(一个实例存储在应用程序中)。保存成本很高:在数据库项目中有修订,因此我保存新数据,更改当前修订并删除先前修订的数据。所以我不担心应用程序突然停止。
但是,根据到文档 i must do not count on this method being called as a place for saving data.
有其他地方可以保存我的数据吗?
OnDestroy 并不总是会被调用。来自生命周期文档--
当您的 Activity 收到对 onStop() 方法的调用时,它不会
不再可见,并且应该释放几乎所有不可见的资源
当用户不使用它时需要。一旦你的活动停止,
如果需要恢复系统,系统可能会破坏实例
记忆。在极端情况下,系统可能会干脆杀死您的应用程序
处理而不调用活动的最终 onDestroy() 回调,所以
使用 onStop() 来释放可能泄漏的资源很重要
记忆。
虽然 onPause() 方法是在 onStop() 之前调用的,但您应该
使用 onStop() 执行更大、CPU 密集度更高的关闭
操作,例如将信息写入数据库
see 停止你的活动
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)