安卓:數據存儲之SharedPreference——學習筆記
Android提供了四種數據存儲的方式
- SharedPreference:一種常用的數據存儲方式,其本質是基于XML文件存儲鍵值對數據,通常用來存儲一些簡單的配置信息。
- SQLite:一個輕量級數據庫,支持基本SQL語法,是Android系統中常被采用的一種數據存儲方式。
- ContentProvider:Android系統中能實現應用程序之間數據共享的一種存儲方式。
- 文件:即常說的文件存儲方法,常用于存儲數據量比較大的數據,但缺點是更新數據困難。
SharedPreference:
1、SharedPreference是什么:
SharedPreferences是一個輕量級存儲類,類似于Map集合,將數據以鍵值對的形式保存至xml文件中,可以被同一個應用共享訪問。
2、SharedPreference為什么被提出:
許多軟件都會有配置信息,而配置信息一般都不放在數據庫中。在所有應用程序中,都必然涉及數據的交互。有些時候,應用程序有少量的數據需要保存,并且這些數據的格式很簡單。比如:軟件設置、用戶賬戶設置,用戶習慣設置等,這個時候就可以用到SharedPreferences。
如:在Windows 中采用ini文件存儲,在java se應用中采用properties屬性文件存儲。在Android則采用SharedPreference類將數據存入到xml文件中
3、SharedPreference怎么用:
①、SharedPreferences獲取方法(SharedPreferences本身是一個接口,程序無法直接創建實例,只能通過context提供的getSharedPreferences()方法來獲取實例 ):
SharedPreferences getSharedPreferences(String name, int mode)
參數name:存儲鍵值對(key-value)的文件的名稱,不加后綴;
參數mode:指定文件操作模式,共有4種操作方式。
②、SharedPreferences對象常用的方法
SharedPreferences對象只能獲取數據,如果需要操作或者存儲數據還需要用到SharedPreferences的edit()方法來獲取一個Editor對象從而來操作數據
③、SharedPreferences.Editor對象的常用方法
引言:SharedPreferences數據存儲的形式都是:鍵值(key),數據值(value)
④、使用SharedPreferences保存鍵值對(key-value)步驟如下():
1、通過 SharedPreferences getSharedPreferences(String name, int mode)得到一個SharedPreference對象,name指定保存鍵值對的文件名稱,mode指定文件的打開方式
2、通過edit()方法獲取一個Editor對象來對鍵值對進行操作
3、通過putXxx(String key,Xxx value)來寫入鍵值對key-name
4、通過commit()方法提交事務
⑤、使用SharedPreferences讀取鍵值對(key-value)的方法:
1、通過 SharedPreferences getSharedPreferences(String name, int mode)得到一個SharedPreference對象,name指定保存鍵值對的文件名稱,mode指定文件的打開方式
2、通過SharedPreference對象的GetXxx(String key,Xxx value)來讀取對應鍵的值
智能推薦
安卓開發-SharedPreference應用實例
安卓開發-SharedPreference應用實例 SharedPrefernce多用于配置文件的使用,此文用賬號密碼來做講解 1、創建一個工程,并建立一個簡單的UI,如圖 代碼如下: 2、編寫核心邏輯代碼: 使用sharedpreference的步驟: 創建sharedpreference對象: 獲取編輯器: 寫入數據: 提交: 回顯數據:...
安卓學習筆記之Content provider
安卓四大組件之 content provider 用途 跨程序共享數據(為其他應用程序提供訪問數據的接口) 利用Content Provider對數據進行封裝,有利于脫離對數據庫的依賴性(解耦)。改變底層數據庫,而上層數據查詢不用改變。 什么是Content Provider? 使用安卓存儲有五種方式,分別是 文件 網絡存儲 數據庫 content provider sharedpreferenc...
安卓學習筆記之Handler
UI線程 當系統啟動的時候,就會創建一個主線程(Main Thread),然后這個主線程向UI組件分發事件,主線程和UI的組件進行交互,故稱UI線程。 線程安全 Android的UI線程是不安全的。引用一下,百度百科的解釋 線程安全就是多線程訪問時,采用了加鎖機制,當一個線程訪問該類的某個數據時,進行保護,其他線程不能進行訪問直到該線程讀取完,其他線程才可使用。不會出現數據不一致或者數據污染。 線...
安卓學習筆記之Okhttp
什么是okhttp? 我們如果原生的去寫一個網絡請求,需要用到的是HttpConnection等相關類去實現的,但是編寫原生的網絡請求,需要我們來實現更多復雜的功能,比如斷點續傳,都需要花費很長的時間去寫。效率也不高。所以我們為了方便在開發過程中能夠省電精力,需要運用到第三方網絡框架,那就是Okhttp。 Okhttp的使用 manifest添加網絡權限 < uses-permission ...
安卓學習筆記之IntentService
什么是IntentService 它會創建一個獨立的子線程來處理所有的Intent請求,創建的子線程來處理onHandleIntent()實現的代碼,無需處理多線程的問題。默認實現onBind()方法,返回為null;默認實現onStartCommand()方法,將請求的Intent添加到隊列中。這個類實際上是繼承自service,內部是封裝了HandlerThread和Handler類。 代碼實...
猜你喜歡
安卓學習筆記之Activity(一)
** 安卓四大組件之Activity ** 1.介紹 ** Activity的出現無處不在,從手機開始啟動的第一個頁面的都是Activity。主要用于可見的狀態與用戶進行交互。好比一張紙,我們需要用代碼這只“筆”來描繪一些信息告訴讀者,這張紙里面有些什么內容和需要操作什么東西。總的來說就是能看到的基本上和Activity。如果有什么錯誤的地方,希望大家指出。感激不盡。 既然...
安卓學習筆記之service(一)
安卓四大組件之Service 今天來入門一下service這個組件,這玩意是在你后臺做一些必要的工作。 ** 1.什么是service? ** 從google官網看的,官方的描述是這樣的。 A Service is an application component representing either an application’s desire to perform a long...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...