找了好久这个问题,现在无果:
如何确定片段正在从后台恢复?我在 FragmentActivity 中使用兼容性库和 ListFragment。当 ListFragment 中的某个项目被选中时,会启动一个新的 Fragment 来替换 ListFragment。
我注意到,当 FragmentActivity 暂停时,会调用 Fragment 的 onSaveInstanceState。但是当通过 FragmentTransaction 将 Fragment 放入回栈时,不会调用 onSaveInstanceState,然后使用 null savedInstanceState Bundle 调用生命周期方法 onCreateView 和 onActivityCreated。
我问这个是因为我想在创建或恢复 Fragment 时加载一些数据,但当用户返回时不是这样。后台。
我看过如何检查片段是否从后台恢复? 但想添加更多细节,希望这会引发答案。
但是请注意:此方法可以在 onDestroy() 之前的任何时间调用。在很多情况下,一个片段可能大部分被拆除(例如当放置在没有显示 UI 的后台堆栈时),但它的状态不会被保存,直到它拥有的 Activity 实际需要保存它的状态。
所以 onSaveInstanceState 绝对是不可能的......