Introduction
- Application是一个单例,即每一个app启动的时候都会创建一个Application的实例,它用来存储和处理整个全局变量的一些事情,它同时还是一个Context,Application也像Activity一样有自己的生命周期,但是它并没有那么复杂,因为Application只在打开app,确切的说是启动app的时候才会创建,所以说可以在application创建的时候对app全局进行一些配置,比如配置插件。这主要也是得益于只要app不被kill掉,任何时候Application都不会重新创建
- Application也有自己的生命周期和一些回调方法:
- onCreate(): 就是自己被创建的时候,也就是启动的时候
- onTerminate(): 这个方法其实只是模拟一个生命周期的样子,其实在实际Android Device上不会调用这个方法,因为你finish掉MainActivity之后其实也只是把Application放到了后台,你自己并不能手动控制application的终止,而OS kill Application是不可控且不会回调这个方法的
- onTrimMemory(int): 这个方法是在系统回收内存时调用的,不管这个Application在前台还是后台,只要系统要进行GC了,就会调用每一个Application的onTrimMemory(int level)方法,而本Application在系统回收内存的时候处于的状态(比如自己处于后台且即将被Kill、自己处于前台、自己处于后台但是不会被回收等等)是通过level的值来传递的
- onLowMemory(): 当后台应用程序全部被kill的时候,就会调用这个方法,说明OS已经kill了所有后台进程了,暗示着内存紧张,这时候才会调用onLowMemory
Purpose
- 当使用插件化开发时候可能需要在Application启动时去加载插件,或者需要自己去加载自己预先放置好的全局的配置文件
小结
Application也就这个样子