Android 在onActivityResult问题中的活动状态

Android 在onActivityResult问题中的活动状态,android,android-activity,Android,Android Activity,在onActivityResult中,我对活动的状态有疑问。具体来说,是否“保证”在活动的onActivityResult之前调用onRestoreInstanceState或onCreate?换句话说,假设活动的状态数据(成员变量等)在onActivityResult中“可用”是否安全(假设您已正确处理onRestoreInstanceState和/或onCreate) 使用startActivityForResult启动另一个活动的活动是完全活动的,只是它失去了焦点-即它没有收到触摸输入。如

在onActivityResult中,我对活动的状态有疑问。具体来说,是否“保证”在活动的onActivityResult之前调用onRestoreInstanceState或onCreate?换句话说,假设活动的状态数据(成员变量等)在onActivityResult中“可用”是否安全(假设您已正确处理onRestoreInstanceState和/或onCreate)

使用startActivityForResult启动另一个活动的活动是完全活动的,只是它失去了焦点-即它没有收到触摸输入。如果使用此方法启动透明活动,您可以看到第一个活动仍在后台制作动画等。

在我的应用程序中,我得到以下工作流:

onCreate
onStart
onRestoreInstanceState
onActivityResult
onResume

因此,在
onrestoreininstancestate
之后调用yes
onActivityResult
,因此您可以指望状态已完全恢复(除非您在
onResume
中执行smth)。

调用startActivityForResult之后,调用onSaveInstanceState。Android调用此函数,以便在需要从内存中删除活动时,可以稍后恢复它(通过onRestoreInstanceState或onCreate在捆绑包中提供状态信息)。因此,尽管在您调用startActivityForResult后某个活动可能仍在运行,但我不相信您能保证一旦新活动启动,它不会被Android杀死。所以,我的问题是,如果Android需要调用RestoreActivityState或onCreate,那么调用onActivityResult之前还是之后都是这样?onActivityResult更像是一个等待输入的侦听器,所以我猜这两个活动都可以在没有执行onActivityResult的情况下被终止。谢谢,这样做是有道理的,但我只是重复检查,因为我在任何地方都找不到文档记录。这个答案是错误的:onActivityResult在启动之前调用,以防您启动另一个活动以获取结果并返回初始活动OS在后台时不会终止活动;它宁愿杀了整个人process@MarianPaździoch,谢谢,刚刚编辑并删除了令人困惑的句子。它写于2011年,当时我最初认为(a)谷歌的误导性文档和(b)允许强制此类行为的开发人员选项)操作系统可以杀死单独的活动。