Android 是活动';在操作系统重启后调用onActivityResult()之前重新创建的视图?

Android 是活动';在操作系统重启后调用onActivityResult()之前重新创建的视图?,android,android-activity,android-lifecycle,onactivityresult,activity-lifecycle,Android,Android Activity,Android Lifecycle,Onactivityresult,Activity Lifecycle,假设我有活动A。我使用startActivityForResult()从活动A启动活动B,每当启动完成时,都会在活动B中调用setResult()函数,从而调用活动A的onActivityResult() 但是,如果当我在活动B中时,android操作系统杀死应用程序并重新启动它会怎么样呢。当应用程序恢复后,我返回活动B,然后通过调用setResult()选择返回活动A。所以我的问题是,在调用活动A的onActivityResult()之前是否重新创建了它的视图(调用了onCreate())?在

假设我有活动A。我使用startActivityForResult()从活动A启动活动B,每当启动完成时,都会在活动B中调用setResult()函数,从而调用活动A的onActivityResult()

但是,如果当我在活动B中时,android操作系统杀死应用程序并重新启动它会怎么样呢。当应用程序恢复后,我返回活动B,然后通过调用setResult()选择返回活动A。所以我的问题是,在调用活动A的onActivityResult()之前是否重新创建了它的视图(调用了onCreate())?在这种情况下,是否调用了活动a的onActivityResult()

谢谢你的阅读

所以我的问题是,是否重新创建了活动A的视图(调用了onCreate()) 在调用其onActivityResult()之前?在这种情况下,是什么 活动A的onActivityResult()是否已调用

对。如果操作系统已终止应用程序的进程,且活动B已完成,则操作系统会重新创建活动A并将结果传递给onActivityResult(),就像活动A根本没有终止一样

注意:

  • 只有当您的两个活动处于不同的过程中时,这才是可能的。操作系统在内存压力下从不直接终止活动。它只会终止托管活动的整个进程。若你们的两个活动都在同一个过程中托管,那个么你们的场景就不会发生
  • 任何回调类实例、成员变量,甚至静态变量都会随活动A一起销毁,因为整个进程都会被终止。您必须在活动A中重新创建它们

是的,
onCreate()
首先被调用,然后是
onActivityResult()
@pskink谢谢!有用且详细的回答。谢谢