美文网首页
Android数据存储--SharedPreference

Android数据存储--SharedPreference

作者: MrMagicWang | 来源:发表于2016-08-09 21:54 被阅读129次

    Sharepreference是Android程序中常用的数据存储方式。其本质就是一个xml文件,用于存储少量的,一般是配置文件一类的数据,其特点是简单方便。

    Sharepreference使用键值对保存私有基本数据。

    创建SharedPreference

    • 通过context.getSharedPreferences对象获取
    SharedPreferences preferences =  context.getSharedPreferences("com.example.test_preference", Context.MODE_PRIVATE);
    //获取应用级别的preferences。
    //第一个参数为SharedPreferences的xml的文件名,一般格式为<package_name>_preferences
    //第二个参数为int mode, 一般用 0 或者 MODE_PRIVATE
    
    • 直接在activity中使用getPreferences()方法:可以获取同一activity中的preference
    • 通过PreferenceManager的getDefaultSharedPreferences(Context context)方法获取

    创建、修改SharedPreferences值
    SharedPreferences.Editor是用来修改SharedPreferences对象值的接口。在editor 做出的修改都是待处理的,并没有被保存到SharedPreferences里。当调用commit()或apply()方法修改才会被保存。

    commit()方法可以同步保存数据。
    apply()方法为异步保存数据。

    //获取Editor
    SharedPreferences.Editor editor = sharedPreferences.edit();
    
    //添加或修改值
    editor.putDataType("key", val);
    
    //删除单个数据值
    editor.remove("key");
    
    //清除所有数据值
    editor.clear();
    
    //保存修改
    editor.commit();
    editor.apply();
    

    获取数据
    SharedPreferences是单例对象,只在第一次调用getSharedPreferences方法打开文件时,创建一个实例对象。

    SharedPreferences first= context.getSharedPreferences("com.example.test_preference", Context.MODE_PRIVATE);
    SharedPreferences second= context.getSharedPreferences("com.example.test_preference", Context.MODE_PRIVATE);
    
    first.edit().putInt(”key”,10).commit();
    int firstValue = first.getInt(”key”,0));  // firstValue = 15
    int secondValue = second.getInt(”key”,0));  // secondValue = 15
    

    当第一次调用get方法时,它解析对象并把放入map中,第二次获取数据直接从map 中获取,不需再解析。

    first.getString(”key”,null)
    // call time = 147 milliseconds
     
    first.getString(”key”,null)
    // call time = 0 milliseconds
     
    second.getString(”key”,null)
    // call time = 0 milliseconds
    

    Preference的数据越大,get、commit、apply、remove和clear方法耗时越长。所以强烈建议把存储的数据分成小的对象。

    相关文章

      网友评论

          本文标题:Android数据存储--SharedPreference

          本文链接:https://www.haomeiwen.com/subject/vyudsttx.html