【问题标题】:the destroyed fragment onActivityResult is called instead of the re-started fragment调用销毁的片段 onActivityResult 而不是重新启动的片段
【发布时间】:2014-09-18 11:34:15
【问题描述】:

有问题,销毁片段中的onActivityResult仍然被调用。

操作系统可能出于某种原因破坏活动(即活动进入后台并且内存不足,而不仅仅是配置更改)。 在我的测试用例中,它有一个活动/片段来启动相机活动,当相机视图启动时,操作系统可能会破坏午餐片段(实现它的一种更简单的方法是检查开发人员中的“不保留活动”选项设置(但您不必这样做,由于操作系统决定这样做的某些原因,可能会发生销毁)。

类似Android: Activity getting Destroyed after calling Camera Intent的问题

但这里的区别是Fragment F1打开了相机活动。 F1 的 onDestroy 由 os 调用。从相机活动拍摄照片并返回午餐片段后,操作系统会重新创建它,但它是片段的新实例 F2。

跟踪显示片段实例 F1 上的 onActivityResult 仍然使用新的照片数据调用,但片段实例 F2 的 onActivityResult 没有被调用。

这是os销毁/重新创建时的常见问题吗?如何从打开的活动(如本例中的相机)中捕获回调并将数据传递给操作系统新创建的片段实例?

谢谢!

【问题讨论】:

    标签: onactivityresult


    【解决方案1】:

    我认为问题在于当操作系统在 onCreate(Bundle savedInstanceState) 重新创建活动时,我们应该检查 savedInstanceState 以不自己重新创建一个额外的新 Fragment 实例。让操作系统重新创建 Fragment 实例。然后在正确的 Fragment 实例上调用 onActivityResult()。

    【讨论】:

    • 你能说得更具体点吗?我也面临同样的问题,你的帮助会很大。提前致谢。
    猜你喜欢
    • 2018-08-20
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2013-12-01
    • 2013-05-02
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    相关资源
    最近更新 更多