问题描述
假设用户正在运行一个应用程序,然后他突然关闭了该应用程序。
现在,应用程序当前运行的进程会被立即杀死吗?
如果上述问题的答案是肯定的,那么这将意味着在我的应用程序中进行的某些计算结束时,我必须将某些内容保存到数据库中,但由于进程被终止而无法完成。是吗?
解决方法
Android 保证在应用程序具有活动 Activity
或 前台 Service
时保持您的进程。在您的 Activity
收到 onPause()
事件并且没有前台 Service
运行之后,托管您的应用程序的进程可能随时被终止,这意味着即使 {{1}在某些情况下不保证会被调用。因此,您应该将重要数据直接保存在 onStop()
生命周期回调中或使用前台 onPause()
。
查看此处了解详细信息:Activity lifecycle、App's process lifecycle