博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SharedPreferences
阅读量:4579 次
发布时间:2019-06-09

本文共 1110 字,大约阅读时间需要 3 分钟。

  1. getDefaultSharedPreferences是默认的sharedpreferences,性能最优。如果使用自己创建的sharedpreferences,在第一次创建的时候会需要150ms多。而使用DefaultSharedPreferences可能由于缓存等原因每次使用维持在个位数。
  2. 清空sharedpreferences的方法:
    1. editor.clear();  
    2. editor.commit();  
    存储共享变量的文件路径位于“/data/data/应用程序包/shared_prefs”目录
  3. 跨进程使用SharedPreferences的方法:

进程A,写:

SharedPreferences preferences = getSharedPreferences("count",

                Context.MODE_MULTI_PROCESS | Context.MODE_WORLD_READABLE);

Editor editor = preferences.edit();

    editor.putString("name", "xichao");

editor.commit();

 

进程B,读:

Context useCount;

    try {

        useCount = createPackageContext("com.example.client",

                    Context.CONTEXT_IGNORE_SECURITY | Context.CONTEXT_INCLUDE_CODE);

        SharedPreferences prefs = useCount.getSharedPreferences("count",

                    Context.MODE_MULTI_PROCESS);

        String name = prefs.getString("name", "");

    } catch (NameNotFoundException e) {

        e.printStackTrace();

}

 

写的时候Context.MODE_WORLD_READABLE表示跨进程可读,但是读到之后如果A的值有更改,B并不会更新,因为B读的是缓存数据。解决办法就是Context.MODE_MULTI_PROCESS。需要注意的是写数据的进程A,这个xml文件的getsharedpreferences都需要加上这个mode组合:

Context.MODE_MULTI_PROCESS | Context.MODE_WORLD_READABLE

转载于:https://www.cnblogs.com/xichao/p/3611185.html

你可能感兴趣的文章
安卓自定义View教程目录
查看>>
使用命名捕获,给匹配加标签
查看>>
文件名简体转繁体bat
查看>>
腾讯云CentOS系统服务器搭建发布Javaweb项目
查看>>
ThinkPHP整合微信支付之发裂变红包
查看>>
工作一年啦
查看>>
「洛谷3338」「ZJOI2014」力【FFT】
查看>>
x86中的页表结构和页表项格式
查看>>
虚拟化技术对照:Xen vs KVM
查看>>
三角函数
查看>>
Ubuntu 16.04运行altera opencl sdk(AOCL)
查看>>
MapKit 添加大头针
查看>>
appium_获取元素状态
查看>>
安装jar到本地maven仓库
查看>>
【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
查看>>
java面试题之十二:其他
查看>>
SSM框架——SpringMVC+Spring+Mybatis搭建教程
查看>>
webpack配置优化
查看>>
flume将数据发送到kafka、hdfs、hive、http、netcat等模式的使用总结
查看>>
分布式技术追踪 2017年第二期
查看>>