gpt4 book ai didi

android - onActivityResult() 可以在 onCreate() 之前调用吗?

转载 作者:行者123 更新时间:2023-12-05 05:00:17 26 4
gpt4 key购买 nike

onActivityResult() 理论上可以在 onCreate 之前调用吗?我知道它可以在 onResume() 之前调用,但让我们考虑一下这种极端情况:

  1. Activity A 正在运行并启动 Activity B 以获得结果
  2. Activity B 打开
  3. 设备内存不足,因此它破坏了 Activity
  4. Activity B 以结果结束

现在发生了什么? Activity A 是在收到结果之前重新创建,还是在 onCreate() 之前收到结果?这能保证每次都是相同的顺序吗?

最佳答案

如果您打开应用程序扫描条形码或拍摄照片或视频,您通常会看到这种情况。您启动的 Activity 需要大量资源,因此 Android 会终止托管您的应用的操作系统进程。

当您启动的 Activity 想要将结果返回给您的应用时,会发生以下情况:

  • Android 为您的应用创建了一个新的操作系统进程(因为它终止了您的应用并需要一个新进程)
  • Android 实例化 Application 实例(或您应用的自定义实例)并调用 onCreate()
  • Android 实例化将获取结果的 Activity 的新实例(调用 startActivityForResult() 的实例)
  • Android 在新的 Activity 上调用 onCreate()。在这种情况下,传递给 onCreate()Bundle 是最近用于保存 Activity 实例的 Bundle状态(来自 onSaveInstanceState())。
  • Android 在新的 Activity 上调用 onStart()
  • Android 在新的 Activity 上调用 onActivityResult()
  • Android 在新的 Activity 上调用 onResume()

关于android - onActivityResult() 可以在 onCreate() 之前调用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63119954/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com