首页 > 系统相关 >通过 application 将需要存储内容放在内存中

通过 application 将需要存储内容放在内存中

时间:2023-02-17 19:33:56浏览次数:37  
标签:MainApplication 存储 mInfoMap app application 内存 put public

内存文件的创建

  • 创建 一个类 MainApplication 继承于 Application,该类要采用单例模式,如下:
public class MainApplication extends Application {
    private final static String TAG = "MainApplication";
    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; // 在打开应用时对静态的应用实例赋值
        Log.d(TAG, "onCreate");
    }

    @Override
    public void onTerminate() {
        Log.d(TAG, "onTerminate");
        super.onTerminate();
    }

    // 声明一个公共的图标映射对象
    public HashMap<Long, Bitmap> mIconMap = new HashMap<Long, Bitmap>();
}
  • 在 AndroidManifest.xml 中注册新定义的 Application 类名,如下:

往内存文件中存取内容

  • 存入内容:
            MainApplication app = MainApplication.getInstance();
            app.mInfoMap.put("name", name);
            app.mInfoMap.put("age", age);
            app.mInfoMap.put("height", height);
            app.mInfoMap.put("weight", weight);
            app.mInfoMap.put("married", typeArr[!bMarried ? 0 : 1]);
            app.mInfoMap.put("update_time", DateUtil.getNowDateTime());
  • 读取内容:
        String desc = "全局内存中保存的信息如下:";
        MainApplication app = MainApplication.getInstance();
        Map<String, String> map = app.mInfoMap;
        for (Map.Entry<String, String> item : map.entrySet()) {
            desc = desc + "\n " + item.getKey() + "的取值为:" + item.getValue();
        }
        if (map.size() <= 0) {
            desc = "全局内存中保存的信息为空";
        }
        tv_app.setText(desc);

效果如下:

标签:MainApplication,存储,mInfoMap,app,application,内存,put,public
From: https://www.cnblogs.com/styCy/p/17131347.html

相关文章

  • redis的key过期策略+内存淘汰策略
    redis的key过期策略是怎么样的redis的过期策略主要是定期删除和懒删除来实现的定期删除redis定时每间隔大约100ms进行随机抽选择1批key,对过期的key进行删除,并且根......
  • Hadoop数据存储及管理
    一、分布式文件存储面临的挑战1.海量数据存储问题采用多台服务器,支持横向扩展2.海量数据问题查询便捷问题使用元数据记录文件和机器的位置信息3.大文件传输效率慢......
  • PLSQL有返回值的存储过程的调用
    存储过程:CREATEORREPLACEPROCEDUREstu_proc(v_nameINVARCHAR2DEFAULT'张三',v_idOUTNUMBER)AS--声明语句段BEGIN--执行语句段SELECTidINTOv_i......
  • java 内存锁
    importlombok.extern.slf4j.Slf4j;importjava.util.Map;importjava.util.concurrent.ConcurrentHashMap;importjava.util.concurrent.locks.Lock;importjava.util.con......
  • 内存检测工具
                    ......
  • 【MySQL-视图/存储过程/存储函数/触发器】
    零、本文纲要一、视图二、存储过程三、存储函数四、触发器tips:Ctrl+F快速定位到所需内容阅读吧。一、视图0、表&数据准备--新建表格createtabletb_test(idint......
  • MYSQL占用内存过高问题的解决结果记录
    问题:发现docker容器mysql的内存使用高,达到9个G快满了。开始按网上资料,查了以下二个方面,结果不是这二方面的问题,这里不再详述:1)连接池占用内存情况2)会话占用内存情况最......
  • Content-Disposition & application/octet-stream
    Content-Dispositionhttps://www.jianshu.com/p/d4a85d025768/application/octet-streamhttps://www.cnblogs.com/applezxy/p/11174137.html......
  • 分区内存管理分区选择法
    给出给定大小程序的装载情况,提交最先匹配,最佳匹配,最差匹配算法下的结果截图。   ......
  • 谈谈muduo库的销毁连接对象——C++程序内存管理和线程安全的极致体现
    #前言网络编程的连接断开一向比连接建立复杂的多,这一点在陈硕写的muduo库中体现的淋漓尽致,同时也充分体现了C++程序在对象生命周期管理上的复杂性,稍有不慎,满盘皆输。为......