如转载请注明出处http://blog.csdn.net/ethanchiu/article/details/19341745
实现生命周期的回调方法
监视生命周期的三种嵌套循环全部的生命周期
在onCreate和onDestroy之间。比如,一个后台下载线程,在oncreate创建,在ondestory停止。可见的生命周期
在onstart和onstop之间。当启动一个新的Activity,当前Activity不可见。在此,可以保持一些显示给用户的资源,可以在on start注册broadcast,监测ui的变化,在onstop注销,当不可见的时候。前端生命周期
在onresume和onpause之间。当一个对话框出现的时候。当内存紧张的时候,onpause是一定会被调用的。onstop和ondestroy可能不会被调用。因此将保存持久化数据放在opause中。当然也要可选择性的写,因为如果耗时,会影响转到下一个Activity的速度,影响体验。
保存Activity状态
不确定之前的Activity是否已经销毁并且已经重新创建了它,因此希望Activity还是原来的那个。这种情况下,为了保存Activity的状态,需要重写onSaveInstanceState()。注意:有些时候onSaveInstanceState()不一定会调用,比如按了Back按钮,用户是想关闭actity,这时候不需要保存Activity状态。
即使不实现onSaveInstanceState()方法,一些Activity的状态也会默认还原
tip,默认view是会还原状态的,但是也可以不还原通过设置android:saveEnabled属性为false。
注意:onSaveInstanceState()不能保证被调用,所以只能用它记录瞬时状态(UI状态),不能用来存储持久化数据。用onPause存储持久化数据(比如数据库存储)。
检测Activity状态是否保存的最好方法是,转化手机屏幕的水平方向,这时Activity会重建。