1:Application简介
Application是维护应用全局状态的基类。Android系统会在启动应用进程时创建一个Application对象,一个进程有且只有一个Application,一个应用可以有多个进程,也就是说一个应用至少有一个Application。Application对象诞生于其它任何组件对象之前,并且一直存活,直到应用进程结束。

<application
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activityandroid:name=".MainActivity">
...
</activity>
</application>
2:Application的作用
Application对象全局可访问,且全程陪同应用进程。所以特别适合完成以下任务:
共享全局状态
初始化全应用所需的服务(Application运行在UI线程中)
Application有四个重要的回调方法
onCreate():Application对象创建的时候调用。
onConfigurationChanged():当系统配置发生变更时调用,如:屏幕方向改变,语言改变。
onLowMemory():当内存吃紧的时候调用,我们在此方法里可以释放一些内存。
registerActivityLifecycleCallbacks():调用这个方法来监听Activity的生命周期变化,我们可以通过此方法来判断当前应用是否在前台。
3:自定义Application
我们可以扩展Application类,让Android系统使用我们自定义的Application类来创建Application对象。
3.1:创建Application子类
public class MyApplication extends Application{
@overide
protected void onCreate(Bundle saveInstanceState){
super.onCreate(Bundle saveInstanceState);
}
}
3.2:添加android:name属性
在清单文件中为application标签添加android:name属性.
<application
android:name="包名.MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activityandroid:name=".MainActivity">
...
</activity>
</application>
我们在实际应用中,大多用静态单例来进行初始化。这样更好维护模块化程度更高(单一职责),也可以懒加载,提高应用的启动速度。