《HarmonyOS應(yīng)用開發(fā)基礎(chǔ)》 課件知識(shí)點(diǎn)3-2 首選項(xiàng)_第1頁
《HarmonyOS應(yīng)用開發(fā)基礎(chǔ)》 課件知識(shí)點(diǎn)3-2 首選項(xiàng)_第2頁
《HarmonyOS應(yīng)用開發(fā)基礎(chǔ)》 課件知識(shí)點(diǎn)3-2 首選項(xiàng)_第3頁
《HarmonyOS應(yīng)用開發(fā)基礎(chǔ)》 課件知識(shí)點(diǎn)3-2 首選項(xiàng)_第4頁
《HarmonyOS應(yīng)用開發(fā)基礎(chǔ)》 課件知識(shí)點(diǎn)3-2 首選項(xiàng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

首選項(xiàng)首選項(xiàng)概述首選項(xiàng)Preferences,適用于對(duì)Key-Value結(jié)構(gòu)的數(shù)據(jù)進(jìn)行存取和持久化操作。首選項(xiàng)基本概念Key-Value數(shù)據(jù)結(jié)構(gòu)一種鍵值型的數(shù)據(jù)結(jié)構(gòu)。Key是不重復(fù)的關(guān)鍵字,Value是數(shù)據(jù)值。在首選項(xiàng)中key的類型是字符串類型,Value的類型包括數(shù)字型、字符串型、布爾型以及這3種類型的數(shù)組類型。非關(guān)系型數(shù)據(jù)庫區(qū)別于關(guān)系數(shù)據(jù)庫,不保證遵循ACID(Atomic、Consistency、Isolation及Durability)特性,不采用關(guān)系模型來組織數(shù)據(jù),數(shù)據(jù)之間無關(guān)系。比如,以Key-Value數(shù)據(jù)結(jié)構(gòu)組成的數(shù)據(jù)庫。首選項(xiàng)概述運(yùn)作機(jī)制首選項(xiàng)概述約束和限制因Preferences實(shí)例會(huì)加載到內(nèi)存中,建議存儲(chǔ)的數(shù)據(jù)不超過一萬條,并注意及時(shí)清理不再使用的實(shí)例,以便減少非內(nèi)存開銷。數(shù)據(jù)中的Key為string類型,要求非空且字符長度不超過80個(gè)字節(jié)。當(dāng)數(shù)據(jù)中的Value為string類型時(shí),允許為空,字符長度不超過8192個(gè)字節(jié)。首選項(xiàng)的使用使用場(chǎng)景首選項(xiàng)功能通常用于保存應(yīng)用的一些常用配置信息,并不適合需要存儲(chǔ)大量數(shù)據(jù)和頻繁改變數(shù)據(jù)的場(chǎng)景。應(yīng)用的數(shù)據(jù)保存在文件中,這些文件可以持久化地存儲(chǔ)在設(shè)備上。接口說明創(chuàng)建存儲(chǔ)實(shí)例數(shù)據(jù)處理數(shù)據(jù)持久化訂閱數(shù)據(jù)變更刪除數(shù)據(jù)文件首選項(xiàng)的使用創(chuàng)建存儲(chǔ)實(shí)例讀取指定文件,將數(shù)據(jù)加載到Preferences實(shí)例,即可創(chuàng)建一個(gè)存儲(chǔ)實(shí)例,用于數(shù)據(jù)操作。PreferencesAPI提供兩套接口來使用Preferences,一套使用Promise,另一套使用callback異步回調(diào)的方式。這里我們以callback異步回調(diào)為例:包名接口名描述ohos.data.preferencesgetPreferences(context:Context,name:string,callback:AsyncCallback<Preferences>):void讀取指定首選項(xiàng)持久化文件,將數(shù)據(jù)加載到Preferences實(shí)例,用于數(shù)據(jù)操作。首選項(xiàng)的使用數(shù)據(jù)處理數(shù)據(jù)處理是對(duì)Preference實(shí)例的數(shù)據(jù)進(jìn)行增刪改查。類名接口名描述Preferencesput(key:string,value:ValueType,callback:AsyncCallback<void>):void支持存入值為number、string、boolean、Array<number>、Array<string>、Array<boolean>類型的數(shù)據(jù)。Preferencesget(key:string,defValue:ValueType,callback:AsyncCallback<ValueType>):void支持獲取值為number、string、boolean、Array<number>、Array<string>、Array<boolean>類型的數(shù)據(jù)。PreferencesgetAll(callback:AsyncCallback<Object>):void支持獲取含有所有鍵值的Object對(duì)象。Preferencesdelete(key:string,callback:AsyncCallback<void>):void支持從Preferences實(shí)例中刪除名為給定Key的存儲(chǔ)鍵值對(duì)。Preferenceshas(key:string,callback:AsyncCallback<boolean>):void檢查Preferences實(shí)例是否包含名為給定Key的存儲(chǔ)鍵值對(duì)首選項(xiàng)的使用數(shù)據(jù)持久化通過執(zhí)行flush方法,應(yīng)用可以將緩存的數(shù)據(jù)再次寫回文本文件中進(jìn)行持久化存儲(chǔ)。類名接口名描述Preferencesflush(callback:AsyncCallback<void>):void將Preferences實(shí)例通過異步線程回寫入文件中。首選項(xiàng)的使用訂閱數(shù)據(jù)變更訂閱數(shù)據(jù)變更,訂閱的Key的值發(fā)生變更后,在執(zhí)行flush方法后,會(huì)觸發(fā)callback回調(diào)。類名接口名描述Preferenceson(type:'change',callback:Callback<{key:string}>):void訂閱數(shù)據(jù)變更。Preferencesoff(type:'change',callback:Callback<{key:string}>):void注銷訂閱。首選項(xiàng)的使用刪除數(shù)據(jù)文件通過調(diào)用以下兩種接口,可以刪除數(shù)據(jù)實(shí)例或?qū)?yīng)的文件。類名接口名描述ohos.data.preferencesdeletePreferences(context:Context,name:string,callback:AsyncCallback<void>)從緩存中移除已加載的Preferences對(duì)象,同時(shí)從設(shè)備上刪除對(duì)應(yīng)的文件。ohos.data.preferencesremovePreferencesFromCache(context:Context,name:string,callback:AsyncCallback<void>):void僅從緩存中移除已加載的Preferences對(duì)象,主要用于釋放內(nèi)存。首選項(xiàng)的使用-開發(fā)步驟1.準(zhǔn)備工作,導(dǎo)入@ohos.data.preferences以及相關(guān)的模塊到開發(fā)環(huán)境。importdata_preferencesfrom'@ohos.data.preferences';首選項(xiàng)的使用-開發(fā)步驟2.獲取Preferences實(shí)例。讀取指定文件,將數(shù)據(jù)加載到Preferences實(shí)例,用于數(shù)據(jù)操作。import

UIAbility

from

'@ohos.app.ability.UIAbility';let

preferences

=

null;export

default

class

EntryAbility

extends

UIAbility

{

onWindowStageCreate(windowStage)

{

data_preferences.getPreferences(this.context,'mystore',function

(err,val){

if(err){

console.info(“獲取preferences實(shí)例失敗。"); return;

}

preferences

=

val;

});

}}首選項(xiàng)的使用-開發(fā)步驟3.存入數(shù)據(jù)。使用put方法保存數(shù)據(jù)到緩存的實(shí)例中。preferences.put('startup','auto',function

(err,val){

if(err){

console.info("保存startup鍵值對(duì)失敗,失敗原因:"+err);

return;

}

console.info(“保存startup鍵值對(duì)成功。");});首選項(xiàng)的使用-開發(fā)步驟4.讀取數(shù)據(jù)。使用get方法讀取數(shù)據(jù)。preferences.get('startup','default',function

(err,val){

if(err){

console.info("讀取startup鍵值對(duì)失敗,失敗原因:"+err);

return;

}

console.info("讀取startup的數(shù)據(jù)為:"+val);});首選項(xiàng)的使用-開發(fā)步驟5.數(shù)據(jù)持久化。應(yīng)用存入數(shù)據(jù)到Preferences實(shí)例后,可以通過flush方法將Preferences實(shí)例回寫到文件中。preferences.flush();首選項(xiàng)的使用-開發(fā)步驟6.訂閱數(shù)據(jù)變更。應(yīng)用訂閱數(shù)據(jù)變更需要指定observer作為回調(diào)方法。訂閱的Key的值發(fā)生變更后,當(dāng)執(zhí)行flush方法時(shí),observer被觸發(fā)回調(diào)。let

observer

=

function

(key)

{

console.info("The

key"

+

key

+

"

changed.");}preferences.on('change',

observer);//

數(shù)據(jù)產(chǎn)生變更,由'auto'變?yōu)?manual'preferences.put('startup',

'manual',

function

(err)

{

if

(err)

{

console.info("保存startup鍵值對(duì)失敗,失敗原因:"

+

err);

return;

}

console.info(“保存startup鍵值對(duì)成功。");

preferences.flush(function

(err)

{

if

(err)

{

console.info(“flush失敗,原因:

"

+

err);

return;

}

console.info(“flush成功。”);

//

觸發(fā)observer方法調(diào)用.

})})首選項(xiàng)的使用-開發(fā)步驟7.刪除指定文件。使用deletePreferences方法從內(nèi)存中移除指定文件對(duì)應(yīng)的Preferences單實(shí)例,并刪除指定文件及其備份文件、損壞文件。刪除指定文件時(shí),應(yīng)用不允許再使用該實(shí)例進(jìn)行數(shù)據(jù)操作,否則會(huì)出現(xiàn)數(shù)據(jù)一致性問題。刪除后,數(shù)據(jù)及文件將不可恢復(fù)。da

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論