Application的一点小笔记

1.Application是维护应用全局状态的基类。Android系统会在系统应用进程时创建一个Application对象。

是context的子类。


2.生命周期:Application对象在程序一开始就创建,并且一直存活在进程中,直到应用进程结束他才会被销毁。

public class Myappextends Application {

/**

    * 创建

    */

    @Override

    public void onCreate() {

super.onCreate();

        MdApp.init(this);

    }

/**

    * 系统配置发生变动的时候调用

    * 比如横竖屏切换

    * @param newConfig

    */

    @Override//

    public void onConfigurationChanged(@NonNull Configuration newConfig) {

super.onConfigurationChanged(newConfig);

    }

/**

    * 系统内存过低的时候调用,一般在这里做一个系统内存回收

    *

*/

    @Override

    public void onLowMemory() {

super.onLowMemory();

    }

}


3.Application对象由Android系统管理,他的回调函数都运行在UI线程。

4.Application对象全局可访问,并且一直存活,所以可以完成以下几个工作:

①共享全局状态:

private static boolean isLogined=false;

    public static Context getmGolabContext() {

        return mGolabContext;

    }

mGolabContext=this;

application 对比 静态单例:

静态单例也可以实现应用全局状态的共享。

静态单例模块化程度更好

application是一个context,所以它具有访问资源文件的能力,但是静态单例不行。

静态单例可以接受context参数,所以将context作为参数传给静态单例,那么久可以访问资源了

application对象能接受系统回调,自动知悉系统环境变化

applicatuion对象的生命周期由系统控制,我们无法干预

综上:如果可以用静态单例实现全局共享,最好是用静态单例的方法实现


②初始化全局应用所需要的的服务

你可能感兴趣的:(Application的一点小笔记)