Android的四大數據存儲方式之一“SharedPreference”,其他三個分別是SQLite、Content Provider 和 File
一般使用SharedPreference來存儲應用程序的配置信息。它一般存儲在應用程序的私有存儲區,文件權限是私有的。也就是說只能供寫入者讀取。它使用鍵/值(NVP機制)來存儲數據。支持的數據類型(boolean、int、float、long和String)。它存儲在應用程序的私有目錄下(data/data/包名 /shared_prefs/)自定義的XML文件中。
1.創建SharedPreference
SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE);
第一個參數:SharedPreference 的名稱
第二個參數:打開的方式,一般有兩個值(0和MODE_PRIVATE)我們一般用MODE_PRIVATE
2.寫入,更新SharedPreference
//獲取SharedPreferences對象 SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE); //像SharedPreference中寫入數據需要使用Editor Editor editor = myPreference.edit(); //存入鍵值對數據,注意此處的put[type]("key",value); editor.putString("STRING_KEY", "string"); editor.putInt("INT_KEY", 0); editor.putBoolean("BOOLEAN_KEY", true); //提交保存 //editor.apply(); editor.commit();
提示:
(1)apply和commit都是提交保存,區別在於apply是異步執行的,不需要等待。不論刪除,修改,增加都必須調用apply或者commit提交保存。
(2)關於更新:如果已經插入的key已經存在。那么將更新原來的key。
(3)應用程序一旦卸載,SharedPreference也會被刪除。
3.讀取
SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE); //讀取這里主要用到了get[type]("key",defaultvalue),第一個參數是要獲取的key,第二個參數是默認值,是當沒有為這個key保存值的時候使用。 String name=preferences.getString("name", "defaultname");
String age=preferences.getString("name", "暫無");
String age=preferences.getInt("age", 0);
String age=preferences.getBoolean("isRead", false);
4.檢索
SharedPreference myPreference=getSharedPreferences("myPreference", Context.MODE_PRIVATE); //檢查當前鍵是否存在 boolean isContains=myPreference.contains("key"); //使用getAll可以返回所有可用的鍵值 //Map<String,?> allMaps=myPreference.getAll();