调用popBackStack从Fragment B返回Fragment A时A会触发哪些生命周期方法?
从Fragment B popBackStack返回Fragment A的生命周期回调说明
以下内容默认基于AndroidX标准Fragment实现,分两种最常见的场景说明:
场景1:导航到B时用replace + addToBackStack()(主流场景)
这种场景下跳转到B时,Fragment A的视图会被销毁,但实例本身会保留在回退栈中,返回时A的回调顺序如下:
onCreateView:重新加载创建Fragment A的布局视图onViewCreated:视图创建完成,可进行视图初始化操作onStart:Fragment变为可见前触发onResume:Fragment完全处于前台、可响应用户交互
场景2:导航到B时用add + addToBackStack()
这种场景下B是直接叠加在A的视图上层,跳转到B时A的视图不会被销毁,仅变为不可见状态,返回时A的回调顺序如下:
onStart:Fragment从不可见恢复为可见前触发onResume:Fragment恢复到前台可交互状态
注:如果导航时没有调用
addToBackStack(),Fragment A的实例会在跳转B时被完全销毁,此时调用popBackStack会直接回退到上一个Activity而非Fragment A,不属于该问题讨论范围。
内容的提问来源于stack exchange,提问作者sooyeon
相关产品推荐
相关产品推荐

