最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解Android中的SharedPreferences

 更新時間:2017年05月26日 10:15:26   作者:a15838319826  
這篇文章主要介紹了Android中的SharedPreferences,包括 SharedPreferences的特點和使用方法,需要的朋友可以參考下

 SharedPreferences作為Android存儲數(shù)據(jù)方式之一,主要特點是: 

1. 只支持Java基本數(shù)據(jù)類型,不支持自定義數(shù)據(jù)類型;

2. 應用內(nèi)數(shù)據(jù)共享;

3. 使用簡單.

使用方法

1、存數(shù)據(jù)

SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE); 
sp.edit().putString("name", "小張").putInt("age", 11).commit(); 

或者下面的寫法也可以

SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE); 
Editor editor = sp.edit(); 
editor.putString("name", "小張"); 
editor.putInt("age", 11); 
editor.commit(); 

切記不要寫成下面的形式,會導致數(shù)據(jù)無法存儲

SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE); 
sp.edit().putString("name", "小張"); 
sp.edit().putInt("age", 11); 
sp.edit().commit(); 

  為什么這種方式無法存儲,因為sp.edit()每次都會返回一個新的Editor對象,Editor的實現(xiàn)類EditorImpl里面會有一個緩存的Map,最后commit的時候先將緩存里面的Map寫入內(nèi)存中的Map,然后將內(nèi)存中的Map寫進XML文件中。使用上面的方式commit,由于sp.edit()又重新返回了一個新的Editor對象,緩存中的Map是空的,所以導致數(shù)據(jù)無法被存儲。

2、取數(shù)據(jù)

SharedPreferences sp = getSharedPreferences("sp_demo", Context.MODE_PRIVATE); 
String name = sp.getString("name", null); 
int age = sp.getInt("age", 0); 
getSharedPreferences的具體實現(xiàn)是在frameworks/base/core/java/android/app/ContextImpl.java,代碼如下:
[html] view plain copy
@Override 
public SharedPreferences getSharedPreferences(String name, int mode) { 
  SharedPreferencesImpl sp; 
  synchronized (ContextImpl.class) { 
    ...... 
    final String packageName = getPackageName(); 
    ArrayMap<String, SharedPreferencesImpl> packagePrefs = sSharedPrefs.get(packageName); 
    if (packagePrefs == null) { 
      packagePrefs = new ArrayMap<String, SharedPreferencesImpl>(); 
      sSharedPrefs.put(packageName, packagePrefs); 
    } 
    ...... 
    sp = packagePrefs.get(name); 
    if (sp == null) { 
      File prefsFile = getSharedPrefsFile(name); 
      sp = new SharedPreferencesImpl(prefsFile, mode); 
      packagePrefs.put(name, sp); 
      return sp; 
    } 
  } 
  ...... 
  return sp; 
} 

SharedPreferencesImpl是SharedPreferences接口的具體實現(xiàn)類,一個name對應一個SharedPreferencesImpl,一個應用程序中根據(jù)name的不同會有多個SharedPreferencesImpl。

SharedPreferencesImpl的具體實現(xiàn)是在frameworks/base/core/java/android/app/SharedPreferencesImpl.java,我們可以通過getSharedPreferences獲得SharedPreferences的實例,當我們調(diào)用sp.getString等get方法取數(shù)據(jù)時,實際上是直接從內(nèi)存中的Map里面去取,get方法傳入的第一個參數(shù)正好是Map的key,第二個參數(shù)是當Map中沒有這個key對應值的時候,返回的默認值。

以上所述是小編給大家介紹的Android中的SharedPreferences,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式

    AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式

    這篇文章主要介紹了AndroidStudio修改Code Style來格式化自定義標簽的xml文件方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Android 基于agora 開發(fā)視頻會議的代碼

    Android 基于agora 開發(fā)視頻會議的代碼

    這篇文章主要介紹了Android 基于agora 開發(fā)視頻會議,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • 基于Android自定義控件實現(xiàn)雷達效果

    基于Android自定義控件實現(xiàn)雷達效果

    這篇文章主要為大家詳細介紹了基于Android自定義控件實現(xiàn)雷達效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Android學習教程之圖片毛玻璃效果(4)

    Android學習教程之圖片毛玻璃效果(4)

    這篇文章主要為大家詳細介紹了Android學習教程之圖片毛玻璃效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • Android自定義實現(xiàn)可回彈的ScollView

    Android自定義實現(xiàn)可回彈的ScollView

    這篇文章主要為大家詳細介紹了Android自定義實現(xiàn)可回彈的ScollView,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • Android使用recyclerview打造真正的下拉刷新上拉加載效果

    Android使用recyclerview打造真正的下拉刷新上拉加載效果

    這篇文章先介紹如何使用這個recyclerview,WZMRecyclerview 是一個集成了 下拉刷新、上拉加載、滑到底部自動加載、添加刪除頭尾部 四個主要功能的recyclerview,需要的朋友可以參考下
    2016-11-11
  • Android中TextView顯示插入的圖片實現(xiàn)方法

    Android中TextView顯示插入的圖片實現(xiàn)方法

    這篇文章主要介紹了Android中TextView顯示插入的圖片實現(xiàn)方法,結(jié)合實例形式分析了TextView三種顯示插入圖片的實現(xiàn)技巧,需要的朋友可以參考下
    2016-08-08
  • 解析Android ANR問題

    解析Android ANR問題

    ANR 的全稱是 Application No Responding,即應用程序無響應,具體是一些特定的 Message (Key Dispatch、Broadcast、Service) 在應用的UI線程(主線程)沒有在規(guī)定的時間內(nèi)處理完,進而觸發(fā) ANR 異常
    2021-01-01
  • Android仿支付寶上芝麻信用分雷達圖

    Android仿支付寶上芝麻信用分雷達圖

    最近支付寶剛剛升級,然后看了一眼里面的芝麻信用分雷達圖覺得很不錯,所以就自己動手實踐了下,這篇文章主要介紹了Android如何自定義控件,模仿支付寶上芝麻信用分雷達圖的效果,有需要的朋友們可以參考借鑒。
    2016-10-10
  • flutter中的布局和響應式app方法示例

    flutter中的布局和響應式app方法示例

    這篇文章主要為大家介紹了flutter中的布局和響應式app方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-12-12

最新評論

荥经县| 巴南区| 林芝县| 利津县| 舒兰市| 从化市| 墨竹工卡县| 无为县| 疏勒县| 荆州市| 兴海县| 乌兰浩特市| 林西县| 安吉县| 辽宁省| 五台县| 昔阳县| 安塞县| 马公市| 辉南县| 运城市| 迭部县| 虞城县| 增城市| 南宫市| 曲靖市| 隆回县| 东阿县| 铅山县| 苍溪县| 五河县| 上林县| 京山县| 二连浩特市| 四子王旗| 吴堡县| 嵊州市| 东源县| 濮阳市| 蛟河市| 拜泉县|