Fragment的生命周期

本文详细介绍了Fragment的生命周期,包括onAttach、onCreate、onCreateView、onActivityCreated等关键阶段,强调了onAttach中保存Activity引用和通过setArguments传递参数的重要性。还通过实例展示了不同操作如按HOME键、屏幕旋转、多任务切换时Fragment生命周期的变化。
摘要由CSDN通过智能技术生成

1:生命周期,Fragment的生命周期看起来和Activity的生命周期类似,但是多了一些,因为Fragment的生命周期是和其关联的Activity有关。

(1)onAttach(Context context):在Fragment和Activity关联上的时候调用,且仅调用一次。在该回调中我们可以将context转化为Activity保存下来,从而避免后期频繁调用getAtivity()获取Activity的局面,避免了在某些情况下getAtivity()为空的异常(Activity和Fragment分离的情况下)。同时也可以在该回调中将传入的Arguments提取并解析,在这里强烈推荐通过setArguments给Fragment传参数,因为在应用被系统回收时Fragment不会保存相关属性,具体之后会讲解。

(2)onCreate:在最初创建Fragment的时候会调用,和Activity的onCreate类似。

(3)View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState):在准备绘制Fragment界面时调用,返回值为Fragment要绘制布局的根视图,当然也可以返回null。注意使用inflater构建View时一定要将attachToRoot指明false,因为Fragment会自动将视图添加到container中,attachToRoot为true会重复添加报错。onCreateView并不是一定会被调用,当添加的是没有界面的Fragment就不会调用,比如调用FragmentTransaction的 add(Fragment fragment, String tag)方法。

(4)onActivityCreated :在Activity的onCreated执行完时会调用。

(5)onStart() :Fragment对用户可见的时候调用,前提是Activity已经started。

(6)onResume():Fragment和用户之前可交互时会调用,前提是Activity已经resumed。

(7)onPause():Fragment和用户之前不可交互时会调用。

(8)onStop():Fragment不可见时会调用。

(9)onDestroyView():在移除Fragment相关视图层级时调用。

(10)onDestroy():最终清楚Fragment状态时会调用。

(11)onDetach():Fragment和Activity解除关联时调用。
在这里插入图片描述
2:接着上期的代码来实现下Fragment的生命周期演示,先把生命周期的所有流程方法写进FragmentButton,添加log打印日志

public class FragmentButton extends Fragment implements View.OnClickListener {
   

    private Button button;
    private TextView textView;

    @Override
    public void onAttach(@NonNull Context context) {
   
        super.onAttach(context);
        Log.d(TAG,"--onAttach:");
    }

    @Override
    public void onCreate
  • 31
    点赞
  • 101
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Fragment生命周期包括以下几个阶段: 1. onAttach():当Fragment与Activity关联时调用。 2. onCreate():当Fragment创建时调用。 3. onCreateView():当Fragment视图创建时调用。 4. onActivityCreated():当Fragment所在的Activity创建完成时调用。 5. onStart():当Fragment在屏幕上可见时调用。 6. onResume():当Fragment进入前台时调用。 7. onPause():当Fragment进入后台时调用。 8. onStop():当Fragment完全不可见时调用。 9. onDestroyView():当Fragment的视图被销毁时调用。 10. onDestroy():当Fragment被销毁时调用。 11. onDetach():当Fragment与Activity分离时调用。 ### 回答2: Fragment生命周期是指Fragment从创建到销毁的整个过程中经历的一系列状态和方法调用。 1. 被创建(onCreate):当Fragment被实例化时,会调用onCreate方法,可以在这里进行一些初始化的操作。 2. 用户可见(onResume):当Fragment所在的Activity处于前台并可见时,Fragment进入用户可见状态,此时会调用onResume方法。 3. 用户不可见(onPause):当Fragment所在的Activity失去焦点或被其他Activity覆盖时,Fragment进入用户不可见状态,此时会调用onPause方法。 4. 停止(onStop):当Fragment所在的Activity完全被其他Activity覆盖时,Fragment会进入停止状态,此时会调用onStop方法。 5. 销毁(onDestroy):当Fragment被销毁时,会调用onDestroy方法,可以在这里进行资源的释放和清理操作。 除了上述状态之外,Fragment还有一些其他的方法调用: - onCreateView:当Fragment需要绘制其用户界面时调用,需要返回一个View对象作为Fragment的UI。 - onActivityCreated:在Fragment所属的Activity的onCreate方法执行完毕后调用,可以在这里进行与Activity的交互操作。 - onStart:Fragment可见时调用,相当于Activity的onStart方法。 - onDetach:Fragment从Activity中分离时调用,此时Fragment不再与任何Activity关联。 总结起来,Fragment生命周期包括了创建、可见、不可见、停止和销毁等几个重要的状态,开发者可以根据自己的需求在不同的生命周期方法中添加相应的逻辑代码,实现更灵活的Fragment界面交互和数据处理。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杭州小白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值