有问题,仍然会调用已销毁片段中的onActivityResult。
操作系统可能由于某种原因破坏活动(即活动进入后台并且内存不足,而不仅仅是配置更改)。 在我的测试用例中,它有一个活动/片段来启动摄像机活动,当摄像机视图启动时,操作系统可能会破坏午餐片段(一种更容易实现的方法是检查" Don&#t; t保持活动"在开发人员选项设置中(但你不必,由于某些原因,os可能会发生破坏)。
类似于Android: Activity getting Destroyed after calling Camera Intent
的问题但是这里的区别是The Fragment F1打开了相机活动。操作系统调用F1的onDestroy。从相机活动拍摄照片并返回到午餐片段后,操作系统重新创建它,但它是片段的新实例F2。
跟踪显示片段实例F1上的onActivityResult仍然使用新的照片数据进行调用,但片段实例F2的onActivityResult未被调用。
这是os的破坏/重建时常见的问题吗?如何从打开的活动(如本例中的摄像头)捕获回调并将数据传递给os新创建的片段实例?
谢谢!
答案 0 :(得分:1)
我认为问题是当os在onCreate(Bundle savedInstanceState)上重新创建活动时,我们应该检查savedInstanceState以不重新创建一个额外的新Fragment实例。让os重新创建Fragment实例。然后在适当的Fragment实例上调用onActivityResult()。