嗨,我有一个关于重新创建Activity时保留片段的问题.
我听说有一种方法是在onCreate方法中使用setRetainFragment(true).
问题是 – 这与跟踪Activity中的私有Fragment属性有什么不同,这样我在整个活动的生命周期中总是拥有相同的Fragment对象?谢谢!
解决方法:
setRetainInstance(true):片段的状态将在配置更改(例如屏幕旋转)之间保留(而不是销毁!).国家将是
即使配置更改导致“父”活动被销毁,也会保留.但是,片段的视图被破坏了!
生命周期电话:
onPause() -> onStop() -> onDestroyView() -> onDetach()
onAttach() -> onCreateView() -> onStart() -> onResume()
setRetainInstance(false):不会在配置更改中保留Fragment的状态(默认值).
生命周期电话:
onPause() -> onStop() -> onDestroyView() -> onDestroy() -> onDetach()
onAttach() -> onCreate() -> onCreateView() -> onStart() -> onResume()
重要说明:setRetainInstance(true)不适用于后端堆栈上的片段. setRetainInstance(true)对于长时间运行的操作特别有用
内部碎片不关心配置更改.
标签:android,android-activity,lifecycle,fragment
来源: https://codeday.me/bug/20190627/1306479.html