【Jetpack更新之Fragment】setMaxLifecycle 上位,setUserVisibleHint 被弃用

本文详细介绍了Jetpack中Fragment的setMaxLifecycle替代setUserVisibleHint的过程,分析了setMaxLifecycle的内部逻辑,讨论了如何更好地管理Fragment的状态,并提到了相关API的弃用。总结了这一变化带来的好处,包括简化代码和提升fragment内部逻辑的清晰度。同时,提供了相关资源链接,如ViewPager2的迁移和Androidx下Fragment的懒加载新实现。

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

很多情况下,fragment 的生命周期上限应该低于 FragmentManager/Activity。例如,ViewPager 屏幕外的界面不应被 resumed

理想状态下,可以通过以下 API 实现

supportFragmentManager
   .beginTransaction()
      .setMaxLifecycle(fragment, Lifecycle.State.RESUMED)
      .commit()

将最大生命周期设置为 Lifecycle.State.RESUMED 将有效地消除限制(因为这是最高生命周期状态)

这将允许废弃 setUserVisibleHint() API

setMaxLifecycle 出现始末

该功能应如何实现的?我们沿着 commit log 来理一下官方的思路

BackStackRecord 的部分逻辑转移至父类 FragmentTransaction

FragmentTransaction 中添加 setMaxLifecycle API

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值