android - 在操作系统重启后调用 onActivityResult() 之前是否重新创建了 Activity 的 View ?

标签 android android-activity android-lifecycle onactivityresult activity-lifecycle

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

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

感谢阅读。

最佳答案

So my question is, is Activity A's view recreated(onCreate() called) before its onActivityResult() is called? In such a scenario, is Activity A's onActivityResult() even called?

是的。如果操作系统终止了您的应用进程并且 Activity B 已完成,则操作系统知道重新创建 Activity A 并将结果传递给 onActivityResult(),就好像 Activity A 根本没有终止一样。

注意:

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

关于android - 在操作系统重启后调用 onActivityResult() 之前是否重新创建了 Activity 的 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50663333/

相关文章:

android - 分割冗长的短信,一起阅读

安卓/三星 galaxy S 模拟器

android - 不使用 fragment 的操作栏选项卡?

android - 调用包含在另一个 android Activity 中的对象的方法

java - Android java 从额外意图获取 ArrayList<byte[]>

java - AndroidViewModel 没有零参数构造函数

java - 如何为自定义应用程序类转换上下文

android - Android 中电话 Intent 的 Uri 是什么?

android - 当 Activity 配置更改屏幕大小和方向时强制 fragment 重新创建

android - com.twitter.sdk.android.core.DefaultClient的java.lang.NoClassDefFoundError