很多情况下,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