分为三个主要循环
onResume和onPause
onStart和onStop
onCreate和onDestroy
还有一个特殊的循环
onSaveInstanceState和onRestoreInstanceState
onResume和onPause是最轻量的,首先要处理暂停和恢复的基本逻辑
然后,onPause里应该释放一些最轻量的资源,并且应该保存最关键的数据
onStart和onStop里应该用于获取和释放一些较重的资源
onCreate自然是负责如何创建 一个全新的Activity
onDestroy用于释放一些长线资源,比如线程和服务
关键是onSaveInstanceState和onRestoreInstanceState
应该用这两个方法来负责Activity的状态保存和重建工作
在Activity没有被杀死的情况下,用户离开和返回,这个对象一直存在于内存中,状态没有任何变化,所以用户看到的东西没有变化
但是有时候用户离开之后,这个对象可能被杀死,再次进入的时候,这个对象需要重新创建,并且恢复到原来的样子,以给用户以错局好像没有被杀死过一样
这两个方法就是用来做这件事的。在onSave里保存你认为恢复时需要的数据,在onRestore里用这些数据对Activity的样子进行恢复。你可以认为onRestore是在onCreate之后发生,也就是onCreate创建了一个纯净的Activity,而通过onRestore,你可以将它恢复到之前的样子
注意一点,widget会在系统默认的该循环中恢复,你不用操心
一般情况下,主要处理好onPause和onResume以及onSave和onRestore这两个循环就好。当然onCreate要处理好如何创建这个Activity