SharedPreferences存储、查看

时间:2024-05-20 17:55:34

SharedPreferences存储的特点

    1、sharedPerferences是一种轻量级的存储方式。

    2、只支持JAVA基本数据类型,不支持自定义的数据类型。

    3、应用内数据可以共享。

    4、使用简单,方便。

获取sharedPerferences的3中方式

    1、Context对象的getSharedPreferences(String name, int mode)方法获取。

    2、Activity对象的getPreferences(int mode)方法获取。

    3、PreferenceManager对象的getDefaultSharedPreferences(Context context)方法获取。

sharedPerferences的操作模式

    1、Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容(目前只用这一种)。

    2、Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.(没有用过)

    3、Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.(Android 4.2中弃用

    4、MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.Android 4.2中弃用

sharedPerferences存数据

    1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);

           sp.edit().putString("name", "小明").putInt("age", 11).commit();

    2、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
           Editor editor = sp.edit();
           editor.putString("name", "小明");
           editor.putInt("age", 11);

           editor.commit();

        注:不可这样写

                SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);

                 sp.edit().putString("name", "小明");
                sp.edit().putInt("age", 11);

                sp.edit().commit();

           因为sp.edit()每次都会返回一个新的Editor对象,Editor的实现类EditorImpl里面会有一个缓存的Map,最后commit的时候先将缓存里面的Map写入内存中的Map,然后将内存中的Map写进XML文件中。使用上面的方式commit,由于sp.edit()又重新返回了一个新的Editor对象,缓存中的Map是空的,所以导致数据无法被存储。

sharedPerferences取数据

    1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);
        String name = sp.getString("name", null);

        int age = sp.getInt("age", 0);

        注:取数据的两个参数,第一个是key值,第二是默认值表示当传入的键找不到对应的值时会已默认值返回。

sharedPerferences移除某个key值已经对应的值

    1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);

           sp.edit().remove(key).commit();

sharedPerferences清楚所有数据

    1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);

           sp.edit().clear().commit();

sharedPerferences查询某个key是否存在

    1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);

           sp.contains(key);   返回boolean值

sharedPerferences返回所有的键值对

    1、SharedPreferences sp = getSharedPreferences("file", Context.MODE_PRIVATE);

           sp.getAll();   返回一个Map<Sting,?>

sharedPerferences工具类的下载

sharedPerferences保存文件的查看(保存地址/data/data/包名/shared_prefs/

    一、adb shell命令查看

        1、打开命令行页面输入adb shell 如图

            SharedPreferences存储、查看

        2、输入run-as 应用包名 如图

            SharedPreferences存储、查看

       3、输入ls查看当前目录下的文件夹 如图

            SharedPreferences存储、查看

        4、输入cd shared_prefs进入到该文件加下 如图

            SharedPreferences存储、查看

        5、输入ls查看文件如图

            SharedPreferences存储、查看

        6、找到你保存的文件,输入cat 文件名 如图

            SharedPreferences存储、查看

    第二 在Anroid studio 的Terminal控制台输入第一种方法的shell命令

        SharedPreferences存储、查看


    第三、如果用模拟器调试可以使用DDMS中File Explorer中看到xml文件,如果用真机那么真机必须打开root权限。

        Android studio打开DDMS步骤如图

        SharedPreferences存储、查看

        SharedPreferences存储、查看