2021-07-11

SharedPreferences是 Android 平台为应用开发者提供的一个轻量级的存储辅助类,用来保存应用的一些常用配置,它提供了 putString()、putString(Set<String>)、putInt()、putLong()、putFloat()、putBoolean() 六种数据类型。在应用中通常做一些简单数据的持久化存储,通常用来保存各种配置信息,其本质是一个以“键-值”对的方式保存数据的xml文件,其文件保存在/data/data//shared_prefs目录下

SharedPreferences的四种操作模式

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

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取。

MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

/**

* 保存到本地的配置文件

*

* @author VinPin

*/

public class SharedPreference {

    private static String FILLNAME = "config";// 文件名称

    private static SharedPreferences mSharedPreferences = null;

    public final static String PRE_ACCOUNT = "account";

    public final static String PRE_USERID = "userid";

    public final static String PRE_TOKENID = "tokenid";

    public final static String PRE_USERNAME = "username";

    public final static String PRE_USEREMAIL = "useremail";

    public final static String PRE_PHONE = "phone";

    /**

    * 单例模式

    */

    public static synchronized SharedPreferences getInstance(Context context) {

        if (mSharedPreferences == null) {

            mSharedPreferences = context.getApplicationContext().getSharedPreferences(FILLNAME, Context.MODE_PRIVATE);

        }

        return mSharedPreferences;

    }

    /**

    * SharedPreferences常用的10个操作方法

    */

    public static void putBoolean(String key, boolean value, Context context) {

        SharedPreference.getInstance(context).edit().putBoolean(key, value).apply();

    }

    public static boolean getBoolean(String key, boolean defValue, Context context) {

        return SharedPreference.getInstance(context).getBoolean(key, defValue);

    }

    public static void putString(String key, String value, Context context) {

        SharedPreference.getInstance(context).edit().putString(key, value).apply();

    }

    public static String getString(String key, String defValue, Context context) {

        return SharedPreference.getInstance(context).getString(key, defValue);

    }

    public static void putInt(String key, int value, Context context) {

        SharedPreference.getInstance(context).edit().putInt(key, value).apply();

    }

    public static int getInt(String key, int defValue, Context context) {

        return SharedPreference.getInstance(context).getInt(key, defValue);

    }

    /**

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

    */

    public static void remove(String key, Context context) {

        SharedPreference.getInstance(context).edit().remove(key).apply();

    }

    /**

    * 清除所有内容

    */

    public static void clear(Context context) {

        SharedPreference.getInstance(context).edit().clear().apply();

    }

}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容