我想知道onLowMemory()函数是如何执行的
例如.
假设我有3个活动,每个活动都onLowMemory()覆盖了它们的功能,以清理RAM中的数据.我还有一个Application类,它也会覆盖onLowMemory()清理一些全局状态数据.
现在假设我们从活动A - >活动B - >活动C开始,在活动C上我们耗尽内存.我的问题是那之后会发生什么?
根据我的理解,onLowMemory()Activity C和Application类的功能将被调用,我是否正确?onLowMemory()活动A和B的功能是否被调用?
此外,我相信活动A和B将被杀死(因为它们是后台活动),但在这些活动被杀之前,它们各自onLowMemory()被召唤?
当手机的内存不足时,后台进程将被框架杀死.如果最后一个后台进程被终止,框架将调用每个应用程序的onLowMemory.
这在源代码中描述.请参阅:https://github.com/android/platform_frameworks_base/blob/master/services/java/com/android/server/am/ActivityManagerService.java#L3088
// If there are no longer any background processes running,
// and the app that died was not running instrumentation,
// then tell everyone we are now low on memory.
Run Code Online (Sandbox Code Playgroud)
根据文档 http://developer.android.com/reference/android/app/Application.html#onLowMemory%28%29
调用此函数的确切时间点尚未定义,通常它会在所有后台进程被终止时发生,即在达到终止我们希望避免终止的托管服务和前台 UI 的进程之前。
| 归档时间: |
|
| 查看次数: |
16743 次 |
| 最近记录: |