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:“活动已经优雅地处理了方向更改。”--显然没有,否则您不会发布此问题。“片段依赖于活动,因为活动绑定到服务并从那里获取信息,片段使用这些信息。”--那么?“你的建议似乎没有冒犯的意思,相当笨拙。”——我想对你当前的实现说同样的话。正如人们所说,情人眼里出西施。