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
代码路径: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的生命周期
源码部分截图: