Fragment新功能,setMaxLifecycle了解一下

本文介绍了Android中FragmentTransaction的新方法setMaxLifecycle,解释了它的作用、参数限制和生命周期状态理解。通过示例展示了如何使用setMaxLifecycle来控制Fragment的生命周期状态,并提到了FragmentPagerAdapter的更新,探讨了新的懒加载解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本介绍

setMaxLifecycle定义在FragmentTransaction中,和之前的add、attach、remove、detach、show、hide等方法是并列关系;

FragmentTransaction

public FragmentTransaction setMaxLifecycle(@NonNull Fragment fragment,
        @NonNull Lifecycle.State state) {
    addOp(new Op(OP_SET_MAX_LIFECYCLE, fragment, state));
    return this;
}

参数解读:

  • fragment 即需要操作的Fragment对象,前提条件是这个fragment必须已经加到FragmentManager中;
  • state Lifecycle.State枚举类型,该参数的使用条件是至少是Lifecycle.State.CREATED,否则报IllegalArgumentException异常

Lifecycle.State一共有五个状态,最低要求是Lifecycle.State.CREATED,所以该方法可用的参数有CREATED、STARTED、RESUMED,State和生命周期方法有何区别,下面简单解释一下:

生命周期状态理解

在Fragment中,定义了五种State,这里的State并非上面说Lifecycle.State,但是逻辑基本上是一致的;

  • INITIALIZING 初始状态
  • CREATED 已创建状态
  • ACTIVITY_CREATED 完全创建,但是没有started
  • STARTED 创建并启动,可见不可操作
  • RESUMED 创建启动并可操作

image.png

本文内容只对CREATED、STARTED、RESUMED这三个状态讲解,由于Fragment中定义的mState和Lifecycle.State不是同一状态,在本文视为同一概念;

与生命周期对应关系

各位肯定都知道Fragment生命周期有onDestory,onStop等方法,但是状态却没有这么多,那么如何标识状态和对应关系,下面给出对应关系;
首先,我把生命周期方法从onCreate->onCretateView-&g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值