我试图在屏幕方向改变时保存一个ListFragment子类,因此我在onCreate函数的末尾添加了setRetainInstance(true)。我添加了一个onSaveInstanceState方法来将其所有数据添加到bundle中,然后在onActivityCreated中添加了代码以加载该数据。不幸的是,它无法正常工作。
当我使用Log.d帮助添加一些调试消息时,我发现不仅onSaveInstanceState没有被调用,而且onCreate也被调用了(文档似乎说retainInstance为true时不应该发生这种情况)。 onCreate和onActivityCreated都没有我的数据包(不足为奇)。
我猜这可能是与兼容库的问题,尽管我没有android 3.0+设备来测试这个问题。
如果需要,我可以发布一些代码片段,尽管我没有做任何复杂的操作。
更新:当我改变方向时,onDestroy没有被调用(这就是应该的),所以看起来setRetainInstance的一些部分正在工作。
当我使用Log.d帮助添加一些调试消息时,我发现不仅onSaveInstanceState没有被调用,而且onCreate也被调用了(文档似乎说retainInstance为true时不应该发生这种情况)。 onCreate和onActivityCreated都没有我的数据包(不足为奇)。
我猜这可能是与兼容库的问题,尽管我没有android 3.0+设备来测试这个问题。
如果需要,我可以发布一些代码片段,尽管我没有做任何复杂的操作。
更新:当我改变方向时,onDestroy没有被调用(这就是应该的),所以看起来setRetainInstance的一些部分正在工作。