【问题标题】:Android - What happens when android frees up memory of data that was created in onCreateAndroid - 当 android 释放在 onCreate 中创建的数据的内存时会发生什么
【发布时间】:2021-07-25 15:58:08
【问题描述】:

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

【问题讨论】:

  • 如果 android 系统在后台杀死应用程序以释放空间,则将调用 onCreate。

标签: android android-lifecycle android-memory


【解决方案1】:

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

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

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

文档有a bit of material on the process lifecycle

会再次调用 onCreate 吗?

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

文档有some material on the activity lifecycle

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 2014-04-29
    • 2016-07-13
    • 1970-01-01
    • 2013-03-11
    • 2015-09-14
    • 2011-09-17
    • 2011-08-25
    • 1970-01-01
    相关资源
    最近更新 更多