Application类
application是用来保存全局变量的,并且是在package创建的时候就跟着存在了。
当我们需要创建全局变量的时候,而直接在application中去实现。
只需要调用Context的getApplicationContext或者Activity的getApplication方法来获得一个application对象,再做出相应的处理。
每个Android App运行时,会首先自动创建Application 类并实例化 Application 对象,且只有一个。
当然我们也可以自定义,通过 继承 Application 类自定义Application 类和实例。
例如:Launcher模块中,它自己就写了个application,在AndroidManifest.xml中将它进行了设置:
image.png
Launcher的Application代码:
image.png
Application 对象的生命周期是整个程序中最长的,即等于Android App的生命周期。
Application类的方法介绍
接口
含义
onCreate
Application 实例创建时调用
registerComponentCallbacks
注册ComponentCallbacks2回调接口
unregisterComponentCallbacks
注销 ComponentCallbacks2回调接口
onTrimMemory
通知 应用程序 当前内存使用情况(以内存级别进行识别)
onTerminate
应用程序结束时调用,但该方法只用于Android仿真机测试,在Android产品机是不会调用的
onConfigurationChanged
监听应用程序配置信息的改变,如屏幕旋转等
onLowMemory
监听 Android系统整体内存较低时刻
registerActivityLifecycleCallbacks
注册对应用程序内所有Activity的生命周期监听
unregisterActivityLifecycleCallbacks
注销对应用程序内所有Activity的生命周期监听
从Applicaiton类的方法可以看出,Applicaiton类的应用场景有:
1. 初始化应用程序级别的资源,如全局对象、环境配置变量等 数据共享、数据缓存,如设置全局共享变量、方法等
2. 获取应用程序当前的内存使用情况,及时释放资源,从而避免被系统杀死
3. 监听应用程序配置信息的改变,如屏幕旋转等
4. 监听应用程序内 所有Activity的生命周期
源码部分截图:
image.png