rof*_*fer 5 android android-compatibility android-fragments
我正在尝试在方向更改中保存ListFragment子类,因此我将setRetainInstance(true)添加到onCreate函数的末尾.我添加了一个onSaveInstanceState方法将所有数据添加到一个包中,然后将代码添加到onActivityCreated中以加载该数据.不幸的是,它不会起作用.
当我在Log.d的帮助下添加了一些调试消息时,我发现不仅没有调用onSaveInstanceState,而且onCreate是(文档似乎说当retainInstance为true时不应该发生).onCreate和onActivityCreated都没有捆绑我的数据(毫无疑问).
我猜这可能是兼容性库的一个问题,虽然我没有Android 3.0+设备来测试这个.
任何帮助表示赞赏,如果有必要,我可以发布一些代码片段,尽管我没有做任何复杂的事情.
更新:当我改变方向时(它应该是这样),没有调用onDestroy,所以似乎有些setRetainInstance正在工作
rof*_*fer 10
我终于弄清楚我的问题是什么.这一切都归结为我忘记添加的一行.在我的FragmentActivity子类中,我覆盖了onSaveInstanceState,但我从未调用过super.onSaveInstanceState.显然,与我父母忘记调用的其他方法不同,onSaveInstanceState在忘记调用父类的版本时不会抛出运行时错误,而setRetainInstance只是停止工作.我希望这可以节省一些人在解决这个问题时遇到的麻烦.
| 归档时间: |
|
| 查看次数: |
4211 次 |
| 最近记录: |