Activity生命周期如图2-1所示。
图2-1 Activity生命周期
表2-1列出了生命周期回调函数,其中对每一个回调函数做了更详细的描述,并说明了每一个函数在Activity整个生命周期内的位置,包括在回调函数完成后系统能否终止Activity。
表2-1 Activity生命周期回调函数
(续)
(www.xing528.com)
名为“是否能事后终止?”的列表示系统是否能在不执行其他Activity代码的情况下,在方法返回后终止承载Activity的进程。
有三个函数带有“是”标记:(onPause()、onStop()和onDestroy())。
由于onPause()是这三个函数中的第一个,因此Activity创建后,需要调用onPause()函数,然后才能终止进程;如果系统在紧急情况下必须恢复内存,则可能不会调用onStop()和onDestroy()。因此,应该使用onPause()向存储设备写入至关重要的持久性数据(例如,用户编辑或输入的数据等)。不过,应对onPause()调用期间必须保留的信息有所选择,如果该方法的执行时间过长,会妨碍向下一个Activity的转变并且用户感觉到应用运行速度变慢。
在“是否能在事后终止?”列中标记为“否”的函数可从系统调用它们的一刻起防止承载Activity的进程被终止。
在onPause()执行完毕到onResume()被调用的这段时间内,系统可以终止Activity。在onPause()被再次调用并返回前,将无法再次终止Activity。
根据上述内容的描述,属于技术上无法“终止”的Activity仍可能被系统终止,但这种情况只有在无任何其他资源的极端情况下才会发生。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。