Android数据存储之Application

Application是Android的一大组件,在APP运行过程中有且仅有一个Application对象,它类似于javaweb中的session,贯穿整个生命周期。

Application中适合保存的全局变量主要有一下三类:

(1)会频繁读取的信息,如用户名、手机号等

(2)从网络上获取的临时数据,为节约流量、减少用户的等待时间,想暂时放在内存中供下次使用,如logo、商品图片等

(3)容易因频繁分配内存而导致内存泄漏的对象,如Handler对象等

要想通过Application实现全局内存的读写,需要完成以下3项工作:

(1)写一个继承自Application的类MainApplication,该类要求使用单例模式,内部声明自身类的一个静态成员对象,在创建APP时把自身赋值给这个静态对象,然后提供该静态对象的获取方法getInstance

(2)在activity中调用MainApplication的getInstance方法,获得MainApplication的一个静态对象,通过该对象访问MainApplication的公共变量和公共方法

(3)在AndroidManifest.xml中注册新定义的Application类名,即在application节点中增加android:name属性,值为.MainApplication

下面为MainApplication类的代码框架:

package USER_CLASS;

import android.app.Application;

import java.util.HashMap;

/**
 * Created by animator on 2020/1/19.
 */
public class MainApplication extends Application {
    
    //声明一个当前应用的静态实例
    private static MainApplication mApp;
    //声明一个公共的信息映射,可当做全局变量使用
    public HashMap<String ,String> mInfoMap = new HashMap<String ,String>();
    
    //利用单例模式获取当前应用的唯一实例
    public static MainApplication getInstance(){
        return mApp;
    }
    
    @Override
    public void onCreate() {
        super.onCreate();
        //在打开应用时对静态的应用实例赋值
        mApp=this;
    }
}

完成以上编码后,Activity页代码可直接通过MainApplication.getInstance().mInfoMap对全局变量进行增删改查。

posted @ 2020-01-19 10:18  赵代码  阅读(833)  评论(1编辑  收藏  举报