避免Android在方向更改时自动重新添加我的片段

时间:2011-03-17 21:27:14

标签: java android android-3.0-honeycomb android-fragments

我有ListFragment,这取决于托管Activity正确初始化。在第一次运行时,它加载正常。一旦我更改了方向,我的应用程序崩溃了。从堆栈跟踪中我可以看到,我不是试图过早地添加Fragment,而是Android正在尝试恢复Fragment

我在setRetainInstance(false)方法中设置onStart,但在方向更改后无法找到任何方法来禁用Fragment的恢复。有任何想法吗?我的应用程序被销毁之前是否需要删除Fragment

编辑:我最终推迟了初始化列表,直到活动准备就绪。在设置适配器之前,Android会方便地显示“加载”消息。

2 个答案:

答案 0 :(得分:1)

我最终推迟了初始化列表,直到Activity准备就绪。在设置适配器之前,Android会方便地显示“加载”消息。

答案 1 :(得分:0)

  

我有一个ListFragment,它依赖于托管活动来正确初始化。

那可能是你的困难。

  

从堆栈跟踪中我可以看到不是我试图过早地添加Fragment,而是Android正在尝试恢复Fragment。

正确。

  

有什么想法吗?

我会专注于正确处理配置更改。在片段onSaveInstanceState()onRetainNonConfigurationInstance()getLastNonConfigurationInstance()Activity)和onAttach()Fragment上)的组合之间,你应该能够将旧片段中的任何内容传递给新片段而不会崩溃。对于配置更改,请不要依赖“托管活动来正确初始化”。