Android - 当 android 释放在 onCreate 中创建的数据的内存时会发生什么

时间:2021-07-25 15:58:08

标签: android android-lifecycle android-memory

假设我在 onCreate 中初始化了一堆东西,然后将应用程序带入后台一个小时。如果 Android 在我继续使用该应用程序时释放了在 onCreate 中初始化的内容,会发生什么情况?会再次调用 onCreate 吗?我之所以这么问是因为我考虑在 onResume 而不是 onCreate 中移动一些东西,如果再次调用 onCreate,这是不必要的。

1 个答案:

答案 0 :(得分:1)

<块引用>

如果 Android 释放在我继续使用应用程序时在 onCreate 内部初始化的内容会怎样?

一般来说,Android 不会这样做。 Android 可能终止您的进程,在这种情况下,一切都会消失,您将在下一次应用启动时从头开始。

但是,如果您的进程设法在后台存活了一个小时,那么大多数事情都会在您离开的地方保持原样。当您的应用移至后台时,某些库可能会专门尝试释放一些内存(例如,缓存在图像加载库中),以尝试降低您的进程被终止以释放系统 RAM 的可能性。

文档有 a bit of material on the process lifecycle

<块引用>

onCreate 会被再次调用吗?

如果 Android 终止了您的进程,那么是的,将再次调用任何已启动活动的 onCreate()。如果您的进程幸存下来,则 Activity 已经创建,因此不会再次调用 onCreate()onStart()onResume() 在任何一种情况下都会被调用。

文档有 some material on the activity lifecycle