是否可以在调用 onActivityResult() 之前终止父活动?如果是这种情况,那么在调用 onActivityResult() 时,父活动中维护的任何局部变量都可能无效(初始化)。
当为最初在父活动中设置的某些变量调用 onActivityResult() 时,我会定期收到空指针异常,但如果父活动在从子活动返回之前已被销毁,那么这些变量将不再有效。
是否可以在调用 onActivityResult() 之前终止父活动?
活动不会“终止”。活动被破坏。进程终止。
如果通过其启动的 ActivitystartActivityForResult()与您的应用程序位于不同的应用程序中,则您的进程完全有可能在您的应用程序处于后台时终止。ACTION_IMAGE_CAPTURE例如,您经常会看到这种情况。
此外,配置更改可能会破坏您的活动,因为它会返回前台。假设您以纵向模式开始。您启动其他活动。用户将设备旋转到横向,然后按 BACK。您的“父活动”将被销毁并重新创建。
但是,否则,应该销毁“父活动”的唯一方法是调用finish()它。
当为最初在父活动中设置的某些变量调用 onActivityResult() 时,我会定期收到空指针异常,但如果父活动在从子活动返回之前已被销毁,那么这些变量将不再有效。
您需要重新填充这些变量,例如将它们的值保存onSaveInstanceState() Bundle在onRestoreInstanceState(). 这将处理进程终止场景(假设用户很快返回给您)和配置更改场景。
| 归档时间: |
|
| 查看次数: |
618 次 |
| 最近记录: |