Android运行时在热启动时会重新加载类吗?

时间:2019-07-17 23:13:54

标签: android android-activity

我想知道是否会在Android的热启动时调用静态初始化块。我知道的是,静态初始化块在类加载时仅被调用一次,但是android运行时是否仅在冷启动时一次加载类,还是需要在热启动时再次加载?

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

1 个答案:

答案 0 :(得分:0)

Google的文档太烂了,恕我直言。特别是,他们的“热启动”定义太糟糕了。

对于静态初始化程序,它们将在进程中首次加载类时运行。

因此,使用Google的条款:

  • 从定义上来说,冷启动意味着为您的应用创建了一个全新的过程,因此在引用它们的类时将根据需要执行静态初始化器

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

  • Google的第一个热启动方案(“用户退出了您的应用程序,然后重新启动它”)是一个热启动,至少在静态初始化程序方面如此。

  • Google的第二个热启动方案(“系统从内存中逐出您的应用,然后用户重新启动它”)是一个冷启动,至少在静态初始化程序方面如此。