在调用 onActivityResult 之前是否可以终止父 Activity

Gar*_*nis 2 android

是否可以在调用 onActivityResult() 之前终止父活动?如果是这种情况,那么在调用 onActivityResult() 时,父活动中维护的任何局部变量都可能无效(初始化)。

当为最初在父活动中设置的某些变量调用 onActivityResult() 时,我会定期收到空指针异常,但如果父活动在从子活动返回之前已被销毁,那么这些变量将不再有效。

Com*_*are 5

是否可以在调用 onActivityResult() 之前终止父活动?

活动不会“终止”。活动被破坏。进程终止。

如果通过其启动的 ActivitystartActivityForResult()与您的应用程序位于不同的应用程序中,则您的进程完全有可能在您的应用程序处于后台时终止。ACTION_IMAGE_CAPTURE例如,您经常会看到这种情况。

此外,配置更改可能会破坏您的活动,因为它会返回前台。假设您以纵向模式开始。您启动其他活动。用户将设备旋转到横向,然后按 BACK。您的“父活动”将被销毁并重新创建。

但是,否则,应该销毁“父活动”的唯一方法是调用finish()它。

当为最初在父活动中设置的某些变量调用 onActivityResult() 时,我会定期收到空指针异常,但如果父活动在从子活动返回之前已被销毁,那么这些变量将不再有效。

您需要重新填充这些变量,例如将它们的值保存onSaveInstanceState() Bundle在onRestoreInstanceState(). 这将处理进程终止场景(假设用户很快返回给您)和配置更改场景。