【android官方文档节选】Activity之onSaveInstanceState

               如转载请注明出处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会重建。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值