天天看点

android之Application类介绍

Application类

application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。

当我们需要创建全局变量的时候,而直接在application中去实现。

只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应的处理。

每个Android App运行时,会首先自动创建Application 类并实例化 Application 对象,且只有一个。

当然我们也可以自定义,通过 继承 Application 类自定义Application 类和实例。

例如:Launcher模块中,它自己就写了个application,在AndroidManifest.xml中将它进行了设置:

android之Application类介绍

image.png

Launcher的Application代码:

android之Application类介绍

image.png

代码路径:android源码

Application 对象的生命周期是整个程序中最长的,即等于Android App的生命周期。

Application类的方法介绍

代码路径:android源码

接口 含义
onCreate Application 实例创建时调用
registerComponentCallbacks 注册ComponentCallbacks2回调接口
unregisterComponentCallbacks 注销 ComponentCallbacks2回调接口
onTrimMemory 通知 应用程序 当前内存使用情况(以内存级别进行识别)
onTerminate 应用程序结束时调用,但该方法只用于Android仿真机测试,在Android产品机是不会调用的
onConfigurationChanged 监听应用程序配置信息的改变,如屏幕旋转等
onLowMemory 监听 Android系统整体内存较低时刻
registerActivityLifecycleCallbacks 注册对应用程序内所有Activity的生命周期监听
unregisterActivityLifecycleCallbacks 注销对应用程序内所有Activity的生命周期监听

从Applicaiton类的方法可以看出,Applicaiton类的应用场景有:

1. 初始化应用程序级别的资源,如全局对象、环境配置变量等 数据共享、数据缓存,如设置全局共享变量、方法等

2. 获取应用程序当前的内存使用情况,及时释放资源,从而避免被系统杀死

3. 监听应用程序配置信息的改变,如屏幕旋转等

4. 监听应用程序内 所有Activity的生命周期

源码部分截图:

android之Application类介绍