首页 > 解决方案 > Android中冷启动和热启动的区别

问题描述

根据官方 Android 文档:Cold Start - “如果您的应用程序自设备启动后首次启动,或系统终止应用程序

热启动 - ”系统将您的应用程序从内存中逐出,然后用户重新启动它。

考虑以下场景:

应用程序 A 正在运行 -> 按主页按钮(应用程序进入后台) -> 现在在其他应用程序上工作 -> 系统检测到内存紧缩并杀死应用程序 A 以回收一些内存 -> 现在重新启动应用程序 A(从最近的应用程序或启动图标)

现在是热启动还是冷启动?根据冷启动的文档 - 它看起来是冷启动,因为应用程序在被系统杀死后首次启动(在后台)。

根据热启动的文档 - 它看起来是热启动的情况,因为它在被从内存中驱逐后重新启动。

哪一个是真的?这里错过了什么?

标签: androidlaunching-applicationapp-startup

解决方案


冷启动的一个例子是您在启动设备后首次启动应用程序。当您清除最近的应用程序菜单时,也会发生这种情况。一切都将从头开始加载,并且从您的 Launch Activity 中的方法Bundle返回的对象onCreate将为空。

系统杀死您的应用程序以回收内存也称为进程死亡。在此发生之前onSaveInstanceState,系统提供了一个捆绑包,用户可以在其中保存状态恢复数据。此捆绑包onCreate在应用程序再次启动时可用。该应用程序仍将位于最近的应用程序菜单中,并且如果该状态保持并正确恢复,则用户在再次重新启动该应用程序时应该会有热启动的错觉。


推荐阅读