我试图理解一些奇怪的行为。我有一个ActivityA,它调用onCreate()中的方法将FragmentA添加到R.id.fragment_container。在FragmentA里面,我有一个按钮,通过使用ActivityA的片段管理器(getActivity()。getSupportFragmentManager())并替换R.id.fragment_container并将其添加到backstack来附加FragmentB。我还有另一个按钮来启动一个新的ActivityB。 当我从ActivityB导航回来时,我得到:ActivityA onResume(),FragmentA onResume()。但是当我从FragmentB导航回来时,我得到:FragmentB onCreateView(),FragmentB onActivityCreated()然后是2 onResume()。
所以我的问题是......为什么在启动新活动时保存视图状态,而不是在替换和重新连接片段时保存视图状态。恢复该状态似乎更好,而不是重新创建视图并再次获取该数据。这似乎与我期望的相反,所以我显然缺少一些片段状态保存/恢复步骤或其他东西。似乎活动只是在ActivityB启动时暂停FragmentA(和ActivityA)并在后退时恢复它,但是当FragmentB被连接时FragmentA被完全破坏。我确信有一种方法可以防止这种情况,我似乎无法弄明白。想法?
答案 0 :(得分:0)
在你的问题下面是四个标签android,android-fragments,android-lifecycle& android-navigation。将光标放在它上面一段时间会弹出一个黑盒子。点击信息标签,您将获得研究该主题以及书籍链接的最佳链接。
希望这会对你有所帮助