您的位置:首页 > 其它

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

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

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



从上面这张图我们可以知道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这个方法。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息