Android 运行时是否会在热启动时重新加载类



我想知道静态初始化块是否会在安卓的热启动时调用。我知道的是静态初始化块只会在类加载时调用一次,但是 android 运行时是否仅在冷启动时立即执行类加载,或者它需要在热启动时再次加载它?

这是否取决于应用程序是否仍在运行或被踢出内存?

恕我直言,谷歌的文档很糟糕。特别是,他们的"热启动"定义很糟糕。

对于静态初始值设定项,它们将在进程中首次加载类时运行。

因此,使用谷歌的术语:

  • 根据定义,冷启动意味着为应用创建了一个新进程,因此静态初始值设定项将在你引用其类时根据需要执行

  • 根据定义,热启动意味着您的进程已经存在,因此以前运行的任何静态初始值设定项都不会再次运行

  • Google的第一个热启动场景("用户退出你的应用,但随后重新启动它"(是一个热启动,至少在静态初始值设定项方面是这样。

  • 谷歌的第二个热启动场景("系统从内存中逐出你的应用,然后用户重新启动它"(是一个冷启动,至少在静态初始值设定项方面是这样。

最新更新