欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

android 詳解 SharedPreferences

系統(tǒng) 2463 0

SharedPreferences存儲(chǔ)類效率分析

SharedPreferences是Android平臺(tái)上一個(gè)輕量級(jí)的存儲(chǔ)類,主要是保存一些常用的配置比如窗口狀態(tài),一般在Activity中重載窗口狀態(tài)onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平臺(tái)常規(guī)的Long長(zhǎng)整形、Int整形、String字符串型的保存,它是什么樣的處理方式呢?

SharedPreferences類似過去Windows系統(tǒng)上的ini配置文件,但是它分為多種權(quán)限,可以全局共享訪問,android123提示最終是以xml方式來保存,整體效率來看不是特別的高,對(duì)于常規(guī)的輕量級(jí)而言比SQLite要好不少,如果真的存儲(chǔ)量不大可以考慮自己定義文件格式。xml處理時(shí)Dalvik會(huì)通過自帶底層的本地XML Parser解析,比如XMLpull方式,這樣對(duì)于內(nèi)存資源占用比較好。

--------------------------------------------------------------------------------------------------------------------------

SharedPreferences 的用法

2個(gè)activity 之間的數(shù)據(jù)傳遞除了可以他通過intent來傳遞,還可以使用SharedPreferences來共享數(shù)據(jù)的方式

SharedPreferences 用法很簡(jiǎn)單.

在A中

設(shè)置



Java代碼 收藏代碼
  1. Editorsharedata=getSharedPreferences( "data" , 0 ).edit();
  2. sharedata.putString( "item" , "hellogetSharedPreferences" );
  3. sharedata.commit();

B中獲取

Java代碼 收藏代碼
  1. SharedPreferencessharedata=getSharedPreferences( "data" , 0 );
  2. Stringdata=sharedata.getString( "item" , null );
  3. Log.v( "cola" , "data=" +data);

Android數(shù)據(jù)存取之Preferences

這種方式應(yīng)該是用起來最簡(jiǎn)單的Android讀寫外部數(shù)據(jù)的方法了。他的用法基本上和J2SE(java.util.prefs.Preferences)中的用法一樣,以一種簡(jiǎn)單、透明的方式來保存一些用戶個(gè)性化設(shè)置的字體、顏色、位置等參數(shù)信息。一般的應(yīng)用程序都會(huì)提供“設(shè)置”或者“首選項(xiàng)”的這樣的界面,那么這些設(shè)置最后就可以通過Preferences來保存,而程序員不需要知道它到底以什么形式保存的,保存在了什么地方。當(dāng)然,如果你愿意保存其他的東西,也沒有什么限制。只是在性能上不知道會(huì)有什么問題。

在Android系統(tǒng)中,這些信息以XML文件的形式保存在 /data/data/ PACKAGE_NAME /shared_prefs 目錄下。

數(shù)據(jù)讀取

Java代碼 收藏代碼
  1. StringPREFS_NAME= "Note.sample.roiding.com" ;
  2. SharedPreferencessettings=getSharedPreferences(PREFS_NAME, 0 );
  3. boolean silent=settings.getBoolean( "silentMode" , false );
  4. Stringhello=settings.getString( "hello" , "Hi" );
        String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
boolean silent = settings.getBoolean("silentMode", false);
String hello = settings.getString("hello", "Hi");

      
        這段代碼中:
      
  • SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    通過名稱,得到一個(gè)SharedPreferences,顧名思義,這個(gè)Preferences是共享的,共享的范圍據(jù)現(xiàn)在同一個(gè)Package中,這里面說所的Package和Java里面的那個(gè)Package不同,貌似這里面的Package是指在AndroidManifest.xml文件中:
    Xml代碼 收藏代碼
    1. < manifest xmlns:android = "http://schemas.android.com/apk/res/android"
    2. package = "com.roiding.sample.note"
    3. android:versionCode = "1"
    4. android:versionName = "1.0.0" >
                <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.roiding.sample.note"
    android:versionCode="1"
    android:versionName="1.0.0">
    
              

    這里面的package。根據(jù)我目前的實(shí)驗(yàn)結(jié)果看,是這樣的,歡迎指正。后面的那個(gè)int是用來聲明讀寫模式,先不管那么多了,暫時(shí)就知道設(shè)為0(android.content.Context.MODE_PRIVATE)就可以了。

  • boolean silent = settings.getBoolean(”silentMode”, false);
    獲得一個(gè)boolean值,這里就會(huì)看到用Preferences的好處了:可以提供一個(gè)缺省值。也就是說如果Preference中不存在這個(gè)值的話,那么就用后面的值作為返回指,這樣就省去了我們的if什么什么為空的判斷。

數(shù)據(jù)寫入

Java代碼 收藏代碼
  1. StringPREFS_NAME= "Note.sample.roiding.com" ;
  2. SharedPreferencessettings=getSharedPreferences(PREFS_NAME, 0 );
  3. SharedPreferences.Editoreditor=settings.edit();
  4. editor.putBoolean( "silentMode" , true );
  5. editor.putString( "hello" , "Hello~" );
  6. editor.commit();
        String PREFS_NAME = "Note.sample.roiding.com";
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putBoolean("silentMode", true);
editor.putString("hello", "Hello~");
editor.commit();

      

有了上面數(shù)據(jù)讀取的代碼,這里面的就容易理解了,只是別忘了最后的commit();


注意:

訪問接口和優(yōu)先修改數(shù)據(jù),并由getSharedPreferences(String,int)返回?cái)?shù)據(jù),為了統(tǒng)一設(shè)置參數(shù),有一個(gè)單例類供所有的客戶端共享.修改參數(shù)必須通過一個(gè)SharedPreferences.Editor對(duì)象,在存儲(chǔ)他們時(shí),以確保參數(shù)值有統(tǒng)一的狀態(tài)和控制
目前此類不支持多線程,

android 詳解 SharedPreferences


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦?。。?/p>

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 亚洲国产视频网站 | 精品成人免费一区二区在线播放 | 国产成人精品高清在线观看99 | 精品久| 国产精品一区二区三 | 精品国产一区二区在线 | 国产一级毛片夜一级毛片 | 噜噜噜动态图超猛烈 | 亚洲一区二区三区四区五区中文 | 日韩男女做性高清在线观看 | www.499| 美女扣下面流白浆丝袜 | 91国内精品久久久久怡红院 | 国产精品人妻无码免费久久一 | 国产日韩精品久久 | 网红和老师啪啪对白清晰 | www.99b| 无码国产精品成人午夜视频 | 福利视频在线观看www. | 91视频网页版 | 国产精品一区二区三 | 2021国产精品 | 精品在线观看国产 | 特级生活片 | 欧美亚洲视频 | 亚洲日本视频 | 成人视品 | 日日夜夜精品免费视频 | 天天做天天爱夜夜大爽完整 | 欧美精品一区在线发布 | 天干夜天天夜天干天 | 久久精品23| 在线午夜| 精品一本久久中文字幕 | 加勒比久草| 国产精品尤物在线观看一区 | 亚洲一区视频 | 亚洲国产成人va在线观看网址 | 久久精品伊人 | 日韩免费视频播播 | 亚洲AV国产成人精品区三上 |