Application
Application
该类负责应用程序级别的初始化和全局状态(保存了一些全局变量)的管理。所以当我们需要创建全局变量的时候,直接在application中去实现,只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应 的处理。
- onCreate():
- 签名:
public void onCreate()
- 描述:当应用程序启动时,系统会创建
Application
类的实例并调用其onCreate()
方法。在这个方法中,通常可以进行应用程序级别的初始化,比如初始化全局变量、配置日志、设置异常处理等。
- 签名:
- onTerminate():
- 签名:
public void onTerminate()
- 描述:当应用程序终止时(在最后一个 Activity 被销毁之后),系统会调用
onTerminate()
方法。在这个方法中,可以进行一些清理工作,释放资源,但需要注意,这个方法不是在所有情况下都会被调用(被内核终止时不被调用)。
- 签名:
- onLowMemory():
- 签名:
public void onLowMemory()
- 描述:当系统内存低时,会调用
onLowMemory()
方法。在这个方法中,可以释放一些不必要的资源,以帮助系统回收内存。
- 签名:
- onConfigurationChanged():
- 签名:
public void onConfigurationChanged(Configuration newConfig)
- 描述:当设备的配置(如屏幕方向、语言设置等)发生变化时,系统会调用
onConfigurationChanged()
方法。在这个方法中,可以处理相应的配置变化。
- 签名:
- registerActivityLifecycleCallbacks():
- 签名:
public void registerActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)
- 描述:注册
Activity
的生命周期回调,可以用于监听所有Activity
的生命周期事件。
- 签名:
- unregisterActivityLifecycleCallbacks():
- 签名:
public void unregisterActivityLifecycleCallbacks(Application.ActivityLifecycleCallbacks callback)
- 描述:取消注册
Activity
的生命周期回调。
- 签名:
监听应用Activity的生命周期
Android自 API 14开始引入了一个方法,即Application的 registerActivityLifecycleCallbacks
方法,用来监听所有Activity的生命周期回调。通过这个方法,我们可以轻松获取到当前运行的 Activity 的实例,还可以判断应用是在前台运行还是后台运行。
Application中具体的实现:
1 |
|
两个 Activity 之间的跳转的生命周期:
A.onPause() -> B.onCreate() -> B.onStart() -> B.onResume() -> A.onStop()
如果B是个透明的窗口,或者是对话框的样式, 就不会调用A的onStop()方法。
如果B已经存在于Activity栈中,B就不会调用onCreate()方法。
因为我们可以通过 Activity 的生命周期的追踪回调,对 activityCounter
进行简单的加减处理,从而只需要判断 activityCounter
是否大于0即可知道当前应用是否处于前台运行。
Application
http://example.com/2024/03/17/Application/