gpt4 book ai didi

android - 在 Activity 被杀死之前,onDestroy() 可以花费多少时间?

转载 作者:太空狗 更新时间:2023-10-29 16:10:13 26 4
gpt4 key购买 nike

我知道我的问题标题听起来一定很含糊。但让我在这里把它弄清楚。

假设我有一个基于中间件堆栈的 Android 应用程序。在我的 Activity 的 onCreate() 中,我初始化了我的中间件模块。

在它的 onDestroy() 中,我必须取消初始化中间件。现在我的中间件调用可能需要相当长的时间来处理。所以我想知道 onDestroy() 函数有多少时间,看看我的取消初始化是否可以在这段时间内发生。

将我的 de-init 保留在 onDestroy() 中是否合理?

此外,假设我在 Activity A1 的 onCreate() 中初始化了中间件。单击按钮时, Activity A1 切换到 Activity A2。在内存不足的情况下,LMK 将终止一段时间未使用的 Activity 。这样的话,activity A1不会被kill掉吗?当 Activity A1 被杀死时,我在 A1 中创建的所有实例是否也会被销毁?

问候,琪琪

最佳答案

我相信你问这个问题是很困惑的。

为了更好地理解正在发生的事情,您应该查看可以在 developer.android.com 上找到的生命周期图:

您会看到 Activity.onDestroy() 仅在 Activity 受控关闭的情况下被调用 - 这种情况极少发生,因为 Android 操作系统可以以多种方式终止您的进程状态,而无需调用您的 onDestroy() 方法。

什么以及为什么需要取消初始化?

  • 如果您担心释放资源,那么当/如果您的进程被终止时,大多数资源都会被释放。
  • 如果您担心保存用户的数据(您的应用程序的状态),那么您应该覆盖 onSaveInstanceState()onRestoreInstanceState()

如果您真的想要问题的答案,那么这里是:

  • 当它运行 onDestroy() 时,您的应用程序(可能)有它想要的时间 - 事实上它甚至在运行 onDestroy()意味着操作系统没有选择它被杀死。但这很可能无关紧要:一方面,onDestroy 永远不会在大多数应用程序中运行,如果操作系统改变主意并决定您的应用程序必须终止,它会终止它,即使它是运行 onDestroy

关于android - 在 Activity 被杀死之前,onDestroy() 可以花费多少时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3986854/

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