我正在尝试通过方向更改保存 ListFragment 子类,因此我将 setRetainInstance(true) 添加到我的 onCreate 函数的末尾。我添加了一个 onSaveInstanceState 方法将其所有数据添加到一个包中,然后将代码添加到 onActivityCreated 以加载该数据。不幸的是,它行不通。
当我在 Log.d 的帮助下添加了一些调试消息时,我发现不仅没有调用 onSaveInstanceState,而且还调用了 onCreate(文档似乎说当 retainInstance 为真时不应该发生这种情况)。onCreate 和 onActivityCreated 都没有与我的数据捆绑在一起(不出所料)。
我猜这可能是兼容性库的问题,尽管我没有 android 3.0+ 设备来测试它。
任何帮助表示赞赏,如有必要,我可以发布一些代码片段,尽管我没有做任何复杂的事情。
更新:当我改变方向时不会调用 onDestroy(应该是这样),所以似乎一些 setRetainInstance 正在工作