zoukankan      html  css  js  c++  java
  • 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对全局变量进行增删改查。

  • 相关阅读:
    Python注释及变量
    MySQL期末测试
    SQL查询第三次训练(重点关照对象)
    MySQL内置函数
    聚类-kmeans
    《达.芬奇密码》丹-布朗
    皮克定理与证明
    常见设计模式的种类与一些原则
    时间序列(二)分解、各部分计算方法
    ADF检验
  • 原文地址:https://www.cnblogs.com/zdm-code/p/12212612.html
Copyright © 2011-2022 走看看