最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

安卓開(kāi)發(fā)必看!SharedPreferences有哪些功能?和Intent有什么區(qū)別?附代碼(JAVA)

2023-06-30 14:56 作者:食糖SugerRush  | 我要投稿

1簡(jiǎn)單介紹SharedPreferences

2舉一個(gè)具體的例子

3SharedPreferences運(yùn)用

4SharedPreferences和Intent有什么區(qū)別和關(guān)系


正文:

SharedPreferences是Android提供的一種輕量級(jí)的數(shù)據(jù)存儲(chǔ)機(jī)制。它允許你將小型數(shù)據(jù)集(比如一些基礎(chǔ)的用戶(hù)設(shè)置或者應(yīng)用程序狀態(tài)信息)保存在設(shè)備的永久內(nèi)存中。

首先先舉一個(gè)例子,下面是一個(gè)名為"SettingsActivity"的類(lèi),這個(gè)類(lèi)表示一個(gè)設(shè)置界面,在這個(gè)界面中,我們可以改變一個(gè)叫做"notifications_enabled"的設(shè)置項(xiàng)。

這個(gè)類(lèi)保存這個(gè)設(shè)置項(xiàng)的值到SharedPreferences中,然后在下次打開(kāi)設(shè)置界面時(shí),會(huì)讀取這個(gè)值并顯示到界面上。

這個(gè)類(lèi)的工作流程是這樣的:

  1. 當(dāng)SettingsActivity被創(chuàng)建時(shí),onCreate方法會(huì)被調(diào)用。在這個(gè)方法中,我們首先獲取到CheckBox的引用(CheckBox是一個(gè)可以被選中或取消選中的控件),然后獲取到SharedPreferences。

  2. 從SharedPreferences中讀取"notifications_enabled"的值(如果沒(méi)有這個(gè)值,就默認(rèn)為true),并將這個(gè)值設(shè)置到CheckBox上。

  3. 設(shè)置一個(gè)監(jiān)聽(tīng)器到CheckBox上,當(dāng)CheckBox的狀態(tài)發(fā)生改變時(shí)(即用戶(hù)點(diǎn)擊了CheckBox),這個(gè)監(jiān)聽(tīng)器就會(huì)被觸發(fā)。

  4. 在監(jiān)聽(tīng)器中,我們將新的CheckBox狀態(tài)保存到SharedPreferences中。這樣,當(dāng)用戶(hù)下次打開(kāi)設(shè)置界面時(shí),CheckBox的狀態(tài)就會(huì)是用戶(hù)上次設(shè)置的狀態(tài)。

以下是一些SharedPreferences的常見(jiàn)用途:

  1. 用戶(hù)偏好:你可以使用SharedPreferences來(lái)存儲(chǔ)應(yīng)用設(shè)置,例如:用戶(hù)是否希望接收通知,用戶(hù)的主題顏色偏好,或者是應(yīng)用的語(yǔ)言設(shè)置等。

  2. 應(yīng)用狀態(tài)SharedPreferences也可以用來(lái)保存應(yīng)用的狀態(tài)信息,比如上次用戶(hù)在哪個(gè)界面退出的,或者用戶(hù)在游戲中的等級(jí)等。

  3. 頻繁讀取的數(shù)據(jù):對(duì)于頻繁讀取的數(shù)據(jù),比如用戶(hù)的用戶(hù)名、積分等,使用SharedPreferences可以避免每次都去查詢(xún)數(shù)據(jù)庫(kù)。

舉個(gè)具體的例子,比如一個(gè)新聞應(yīng)用,你可以使用SharedPreferences來(lái)存儲(chǔ)以下的信息:

  • 用戶(hù)是否希望在Wi-Fi環(huán)境下自動(dòng)下載新聞:這是一個(gè)用戶(hù)設(shè)置,你可以在設(shè)置頁(yè)面提供一個(gè)開(kāi)關(guān)讓用戶(hù)進(jìn)行選擇,然后將用戶(hù)的選擇保存在SharedPreferences中。

  • 用戶(hù)上次閱讀到哪一條新聞:這是一個(gè)應(yīng)用狀態(tài),當(dāng)用戶(hù)下次打開(kāi)應(yīng)用時(shí),你可以讀取這個(gè)狀態(tài)并將用戶(hù)帶到他上次閱讀的位置。

  • 用戶(hù)的用戶(hù)名:如果應(yīng)用支持用戶(hù)登錄,那么可以將用戶(hù)名保存在SharedPreferences中,這樣下次用戶(hù)打開(kāi)應(yīng)用時(shí),就可以自動(dòng)填充用戶(hù)名。

在實(shí)際使用中,SharedPreferences是以鍵值對(duì)的方式存儲(chǔ)數(shù)據(jù),其中鍵是一個(gè)字符串,用來(lái)標(biāo)識(shí)數(shù)據(jù);值是實(shí)際的數(shù)據(jù),可以是布爾值、整數(shù)、浮點(diǎn)數(shù)、長(zhǎng)整數(shù)、字符串等。


SharedPreferences和Intent有什么區(qū)別和關(guān)系:

  1. SharedPreferences主要用于在設(shè)備的本地存儲(chǔ)中存儲(chǔ)和讀取小型數(shù)據(jù)集。你可以使用它來(lái)保存應(yīng)用設(shè)置,記錄應(yīng)用的狀態(tài),或者保存用戶(hù)的一些偏好。例如,在上一個(gè)例子中,我們使用SharedPreferences保存了一個(gè)名為"notifications_enabled"的設(shè)置項(xiàng)。

  2. Intent是Android中進(jìn)行頁(yè)面跳轉(zhuǎn)的一種機(jī)制。你可以通過(guò)創(chuàng)建一個(gè)Intent,然后使用startActivity(intent)來(lái)打開(kāi)一個(gè)新的頁(yè)面(Activity)。Intent也可以用來(lái)在Activity之間傳遞數(shù)據(jù)。比如,你可以在創(chuàng)建Intent時(shí)將一些數(shù)據(jù)放入其中,然后在新的Activity中讀取這些數(shù)據(jù)。

它們之間的主要區(qū)別在于:

  • SharedPreferences用于在設(shè)備本地存儲(chǔ)和讀取數(shù)據(jù),適用于需要長(zhǎng)期保存的數(shù)據(jù);

  • Intent用于頁(yè)面跳轉(zhuǎn)以及在Activity之間傳遞數(shù)據(jù),適用于臨時(shí)的數(shù)據(jù)傳遞。

在實(shí)際的應(yīng)用開(kāi)發(fā)中,SharedPreferencesIntent經(jīng)常一起使用。例如,你可以在一個(gè)Activity中通過(guò)SharedPreferences讀取用戶(hù)的設(shè)置,然后通過(guò)Intent將設(shè)置傳遞給另一個(gè)Activity

以下是一個(gè)使用SharedPreferences和Intent一起使用的例子。在這個(gè)例子中,我們有兩個(gè)Activity:MainActivity和SecondActivity。

  1. 在MainActivity中,我們從SharedPreferences中獲取一個(gè)字符串值("user_name"),然后通過(guò)Intent將這個(gè)值傳遞給SecondActivity。

  2. 在SecondActivity中,我們從Intent中獲取這個(gè)字符串值,并顯示在屏幕上。

首先是MainActivity:

然后是SecondActivity:

這個(gè)例子中,當(dāng)用戶(hù)點(diǎn)擊MainActivity中的按鈕時(shí),我們從SharedPreferences中讀取"user_name"值,并將其通過(guò)Intent傳遞給SecondActivity。在SecondActivity中,我們接收到這個(gè)值,并在屏幕上顯示歡迎信息。

注意,這個(gè)例子假設(shè)你已經(jīng)在某個(gè)地方將"user_name"的值保存到了SharedPreferences中。如果這個(gè)值不存在,那么SharedPreferences.getString方法會(huì)返回默認(rèn)值"Default User"。


安卓開(kāi)發(fā)必看!SharedPreferences有哪些功能?和Intent有什么區(qū)別?附代碼(JAVA)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
江达县| 定远县| 株洲市| 迭部县| 乡宁县| 新闻| 丰镇市| 海城市| 盈江县| 交口县| 图片| 特克斯县| 克什克腾旗| 崇礼县| 维西| 乌什县| 延边| 隆尧县| 宁晋县| 新竹县| 临朐县| 雅安市| 桐柏县| 石林| 甘肃省| 阜阳市| 靖西县| 刚察县| 夏邑县| 肃北| 桐城市| 汶上县| 山阳县| 晋城| 西华县| 河池市| 鹿泉市| 青冈县| 曲阳县| 无为县| 广灵县|