我有ListFragment
,这取决于托管Activity
正确初始化。在第一次运行时,它加载正常。一旦我更改了方向,我的应用程序崩溃了。从堆栈跟踪中我可以看到,我不是试图过早地添加Fragment
,而是Android正在尝试恢复Fragment
。
我在setRetainInstance(false)
方法中设置onStart
,但在方向更改后无法找到任何方法来禁用Fragment
的恢复。有任何想法吗?我的应用程序被销毁之前是否需要删除Fragment
?
编辑:我最终推迟了初始化列表,直到活动准备就绪。在设置适配器之前,Android会方便地显示“加载”消息。
答案 0 :(得分:1)
我最终推迟了初始化列表,直到Activity准备就绪。在设置适配器之前,Android会方便地显示“加载”消息。
答案 1 :(得分:0)
我有一个ListFragment,它依赖于托管活动来正确初始化。
那可能是你的困难。
从堆栈跟踪中我可以看到不是我试图过早地添加Fragment,而是Android正在尝试恢复Fragment。
正确。
有什么想法吗?
我会专注于正确处理配置更改。在片段onSaveInstanceState()
与onRetainNonConfigurationInstance()
,getLastNonConfigurationInstance()
(Activity
)和onAttach()
(Fragment
上)的组合之间,你应该能够将旧片段中的任何内容传递给新片段而不会崩溃。对于配置更改,请不要依赖“托管活动来正确初始化”。