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

Java 避免Android在方向更改时自动重新添加我的片段,java,android,android-3.0-honeycomb,android-fragments,Java,Android,Android 3.0 Honeycomb,Android Fragments,我有一个列表片段,它取决于宿主活动是否正确初始化。第一次运行时,它可以正常加载。一旦我改变方向,我的应用程序就会崩溃。从堆栈跟踪中,我可以看到,不是我试图过早地添加片段,而是安卓正在尝试恢复片段 我在onStart方法中设置了setRetainInstance(false),但找不到任何方法在方向改变后禁用片段的还原。有什么想法吗?在销毁我的应用程序之前,我需要删除片段吗 编辑:我最终延迟初始化列表,直到活动准备就绪。在设置适配器之前,Android会方便地显示一条“正在加载”消息 我有一个Li

我有一个
列表片段
,它取决于宿主
活动
是否正确初始化。第一次运行时,它可以正常加载。一旦我改变方向,我的应用程序就会崩溃。从堆栈跟踪中,我可以看到,不是我试图过早地添加
片段,而是安卓正在尝试恢复
片段

我在
onStart
方法中设置了
setRetainInstance(false)
,但找不到任何方法在方向改变后禁用
片段的还原。有什么想法吗?在销毁我的应用程序之前,我需要删除
片段吗

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

我有一个ListFragment,它依赖于宿主活动来正确初始化

这可能就是你的困难所在

从堆栈跟踪中我可以看出,不是我试图过早地添加片段,而是Android试图恢复片段

有什么想法吗


我会专注于正确处理配置更改。在片段中的
onSaveInstanceState()
onRetainConfigurationInstance()
GetLastUnconfigurationInstance()
(在
Activity
)和
OnTach()
(位于
fragment
)的组合之间,您应该能够在不崩溃的情况下将旧片段中的任何内容传递给新片段。对于配置更改,不要依赖“托管活动来正确初始化”。

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

活动已经优雅地处理了方向更改。片段依赖于活动,因为活动绑定到一个服务并从那里获取信息,该信息由片段使用。你的建议似乎没有冒犯的意思,相当笨拙。除非有人有其他想法,否则我可能会在调用OnDestroy之前的某个阶段删除该片段。@Al:“活动已经优雅地处理了方向更改。”--显然没有,否则您不会发布此问题。“片段依赖于活动,因为活动绑定到服务并从那里获取信息,片段使用这些信息。”--那么?“你的建议似乎没有冒犯的意思,相当笨拙。”——我想对你当前的实现说同样的话。正如人们所说,情人眼里出西施。