【发布时间】:2017-04-14 15:30:59
【问题描述】:
直观地说,最适用的回调是onPause()。然而,文档中似乎存在矛盾:
根据https://developer.android.com/guide/components/activities/activity-lifecycle.html:
onPause() 执行时间很短,而且不一定负担得起 足够的时间来执行保存操作。因此,您应该 不要使用 onPause() 来保存应用程序或用户数据,建立网络 调用或执行数据库事务;此类工作可能无法完成 在方法完成之前。相反,您应该执行重载 onStop() 期间的关闭操作。
您还应该使用 onStop() 来执行相对 CPU 密集型的操作 关闭操作。例如,如果你找不到更合适的 是时候将信息保存到数据库了,您可以在 onStop()。
根据https://developer.android.com/reference/android/app/Activity.html:
请注意上表中的“Killable”列——对于那些方法 被标记为可杀死的,在该方法返回之后 托管活动的进程可能随时被系统杀死 没有另一行代码被执行。 因此,您 应该使用 onPause() 方法来写入任何持久性数据(例如 用户编辑)到存储。
那么,应该在哪里以及在另一个衍生线程上完成?这通常是怎么做的?
【问题讨论】:
标签: android android-activity android-lifecycle