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对全局变量进行增删改查。

  • 相关阅读:
    Java实现 蓝桥杯 算法训练 画图(暴力)
    Java实现 蓝桥杯 算法训练 画图(暴力)
    Java实现 蓝桥杯 算法训练 相邻数对(暴力)
    Java实现 蓝桥杯 算法训练 相邻数对(暴力)
    Java实现 蓝桥杯 算法训练 相邻数对(暴力)
    Java实现 蓝桥杯 算法训练 Cowboys
    Java实现 蓝桥杯 算法训练 Cowboys
    55. Jump Game
    54. Spiral Matrix
    50. Pow(x, n)
  • 原文地址:https://www.cnblogs.com/zdm-code/p/12212612.html
Copyright © 2011-2022 走看看