Activity和Fragment的生命周期和使用注意

Activity和Fragment是安卓开发中用的最多的两个组件,所以我们需要对它们的生命周期有一个很清晰的认识。目前很多工作好多年的开发对一些细节不是很清楚,经常会导致一些bug的产生,在下面我会对生命周期做一些详细的介绍和一些开发中的常见注意事项。

下面用一张图简要的介绍下各生命周期:

image
从上面这张图我们可以知道Fragment的生命周期遵循着Activity,Activity的生命周期先执行然后再执行Fragment。如果同一个activity内有多个Fragment,生命周期调用的顺序是添加Fragment的顺序。在上面的生命周期中,可能有人发现了还少一个onRestart(),在Activity中当页面重新回到前台的时候会调用一次onRestart方法,但是这个方法Fragment并没有。

以下一些注意事项

  • 生命周期中不要处理一些耗时操作
  • A activity 跳转B activity时 A的onPause会先调用,然后onResum才会调用,可以简单的记为不可能有两个页面同时处于前台
  • 当页面被意外销毁时,页面中的View会将自己的数据状态缓存起来,等重绘的时候从缓存中取出填充
  • Fragemnt的生命周期一定是与之attatch的activity状态一致
  • fragment被replace之后相当于是被销毁。如果需要保留的话使用hide和show的组合来显示fragment.
  • 注意注意注意,重要的事情说三遍,在调用commit的时候要判断activity的状态,不要轻易使用commitAllowStateLost这个方法。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值