xichao1980

导航

SharedPreferences

  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

posted on 2014-03-19 13:38  xichao1980  阅读(306)  评论(0编辑  收藏  举报