假设我在 onCreate
中初始化了一堆东西,然后将应用程序带入后台一个小时。如果 Android 在我继续使用该应用程序时释放了在 onCreate
中初始化的内容,会发生什么情况?会再次调用 onCreate
吗?我之所以这么问是因为我考虑在 onResume
而不是 onCreate
中移动一些东西,如果再次调用 onCreate
,这是不必要的。
答案 0 :(得分:1)
如果 Android 释放在我继续使用应用程序时在 onCreate 内部初始化的内容会怎样?
一般来说,Android 不会这样做。 Android 可能终止您的进程,在这种情况下,一切都会消失,您将在下一次应用启动时从头开始。
但是,如果您的进程设法在后台存活了一个小时,那么大多数事情都会在您离开的地方保持原样。当您的应用移至后台时,某些库可能会专门尝试释放一些内存(例如,缓存在图像加载库中),以尝试降低您的进程被终止以释放系统 RAM 的可能性。
文档有 a bit of material on the process lifecycle。
<块引用>onCreate 会被再次调用吗?
如果 Android 终止了您的进程,那么是的,将再次调用任何已启动活动的 onCreate()
。如果您的进程幸存下来,则 Activity 已经创建,因此不会再次调用 onCreate()
。 onStart()
和 onResume()
在任何一种情况下都会被调用。