onActivityResult 在 onDestroy 之前被调用

7

在MainActivity.java中,我进行了如下调用:

Intent activity = new Intent(this, CameraDetectionActivity.class);
startActivityForResult(activity, request);

在CameraDetectionActivity中的某个时刻,我执行以下两行代码(所有操作都在GUI线程中完成):

setResult(Activity.RESULT_OK);
finish();

我期望在MainActivity中onActivityResult方法调用之前会先调用onDestroy方法,但实际上它们的调用顺序相反。 你有什么想法为什么会发生这种情况?
2个回答

11

在某个晚些时候会调用onDestroy方法,这可能是任意长的时间。我们希望尽快恢复下一个活动,以便UI在其中,然后只有在UI已经切换后才停止和销毁先前的活动。


谢谢。但是有没有一种方法可以在子活动被完全销毁时找出/被通知? - Frank
1
我是通过在内部活动的“onDestroy”中发送广播意图,由外部活动的广播接收器捕获来完成的。效果非常好! - Frank

0

在调用super.onDestroy();之前,将您的数据传递给父活动。

@Override
protected void onDestroy() {
    Intent intent = new Intent();
    setResult(RESULT_OK, intent);
    finish();
    super.onDestroy();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接