版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度企業(yè)簽約帶貨主播產(chǎn)品試用與評(píng)測(cè)合同3篇
- 2025年度教育科技公司干股分紅與在線教育合作協(xié)議3篇
- 2025年企業(yè)法人變更合同審查與員工權(quán)益保障協(xié)議3篇
- 2025年度金融資產(chǎn)重組收購協(xié)議3篇
- 2025年度公對(duì)公交易合同模板:金融衍生品交易合作協(xié)議2篇
- 二零二五年度教育培訓(xùn)機(jī)構(gòu)教師職務(wù)聘任與教育教學(xué)改革合同3篇
- 2025年度會(huì)展兼職工作人員勞務(wù)合同樣本3篇
- 二零二五年度軍事訓(xùn)練基地保密協(xié)議及設(shè)施管理合同2篇
- 二零二五年度物流行業(yè)創(chuàng)新技術(shù)研究承包合同3篇
- 二零二五年度內(nèi)墻膩?zhàn)邮┕づc室內(nèi)環(huán)境檢測(cè)及優(yōu)化合同3篇
- 石油英語詞匯
- 《夜宿山寺》-完整版課件
- 滬教牛津版八年級(jí)上冊(cè)初二英語期末測(cè)試卷(5套)
- 北京市海淀區(qū)2020-2021學(xué)年度第一學(xué)期期末初三物理檢測(cè)試卷及答案
- 《潔凈工程項(xiàng)目定額》(征求意見稿)
- 家庭室內(nèi)裝飾裝修工程保修單
- 小學(xué)語文課堂提問有效性策略研究方案
- 物業(yè)上門維修收費(fèi)標(biāo)準(zhǔn)
- ATS技術(shù)交流(新型發(fā)動(dòng)機(jī)智能恒溫節(jié)能冷卻系統(tǒng))100318
- 手術(shù)區(qū)皮膚的消毒和鋪巾ppt課件
- 2022年度培訓(xùn)工作總結(jié)
評(píng)論
0/150
提交評(píng)論