安卓开发之碎片的生命周期小总结

安卓开发之碎片的生命周期小总结

首页休闲益智碎片创造游戏更新时间:2024-04-29

碎片是活动的一部分,使得活动更加的模块化设计。可以认为碎片是一种子活动。

通过继承Fragment类来创建碎片。可以通过使用 元素在活动的布局文件中声明碎片来在你的活动中插入碎片。

在引入碎片之前,由于每次给定的一个时间点在屏幕上只能显示单一的活动,因此我们有一个局限。我们无法分割设备屏幕并且独立的控制不同的部分。伴随着碎片的引入,我们获得了更大的灵活性,并使得一个时间点只能在屏幕上有一个单一活动的限制被移除。现在我们可以有单一的活动,但每个活动由多个碎片组装,每个碎片有自己的布局,事件和完整的生命周期。

一、碎片的状态

每个碎片在其生命周期内都可能经历运行、暂停、停止和销毁这几种状态,只不过在一些细小的地方会有部分区别
1、运行状态

当一个碎片是可见的,并且它所关联的活动正处于运行状态是,该碎片也也处于运行状态

2、暂停状态

当一个活动进入到暂停状态时(由于另一个未占满屏幕的活动呗添加到了栈顶),与它相关的可见碎片就会进入到暂停状态。

3、停止状态

当一个活动进入停止状态时,与它相关联的碎片就会进入到停止状态,或者通过调用FragmentTransaction的remove()、replace()方法将碎片从活动中移除,但如果commit()前调用addToBackStack()方法,这时碎片也会进入到停止状态。进入停止状态的碎片对用户来说是完全不可见的,有可能会被系统回收

4、销毁状态

碎片总是依附于活动而存在的,因此活动被销毁时,与它相关联的碎片就会进入到销毁状态。调用FragmentTransaction中的remove()、replace()方法将碎片从活动中移除,当在commit()前没有调用AddToBackStack()此时碎片也进入到销毁状态。

二、碎片的回调三、完整的生命周期示意图示意图

触发场景

1 . 碎片被创建时调用顺序 : onAttach() onCreate() onCreateView() onActivityCreated()

2 . 重新启动时时调用顺序 : onStart() onResume()

3 . 碎片进入后台 : onPause() onStop()

4 . 碎片被销毁(所在的活动被销毁) 调用顺序: onPause() onStop() onDestroyView() onDestroy() onDetach()

5 . 与活动一样,可以使用Bundle对象在以下状态中还原碎片实例 : onCreate() onCreateView() onActivityCreated()

四、区分onCreateView与onActivityCreated的区别

即如果view是静态的,那么没有必要在onActivityCreated 方法去调用,大多数的自定义的view,初始化时都需要一个context,而activity是context的子类,所以在onCreateView方法的时候非静态的view初始化调用可能出现异常,所以对于非静态的view,最好在onActivityCreated方法调用





查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved