《HarmonyOS应用开发基础》 课件知识点3-2 首选项_第1页
《HarmonyOS应用开发基础》 课件知识点3-2 首选项_第2页
《HarmonyOS应用开发基础》 课件知识点3-2 首选项_第3页
《HarmonyOS应用开发基础》 课件知识点3-2 首选项_第4页
《HarmonyOS应用开发基础》 课件知识点3-2 首选项_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

首选项首选项概述首选项Preferences,适用于对Key-Value结构的数据进行存取和持久化操作。首选项基本概念Key-Value数据结构一种键值型的数据结构。Key是不重复的关键字,Value是数据值。在首选项中key的类型是字符串类型,Value的类型包括数字型、字符串型、布尔型以及这3种类型的数组类型。非关系型数据库区别于关系数据库,不保证遵循ACID(Atomic、Consistency、Isolation及Durability)特性,不采用关系模型来组织数据,数据之间无关系。比如,以Key-Value数据结构组成的数据库。首选项概述运作机制首选项概述约束和限制因Preferences实例会加载到内存中,建议存储的数据不超过一万条,并注意及时清理不再使用的实例,以便减少非内存开销。数据中的Key为string类型,要求非空且字符长度不超过80个字节。当数据中的Value为string类型时,允许为空,字符长度不超过8192个字节。首选项的使用使用场景首选项功能通常用于保存应用的一些常用配置信息,并不适合需要存储大量数据和频繁改变数据的场景。应用的数据保存在文件中,这些文件可以持久化地存储在设备上。接口说明创建存储实例数据处理数据持久化订阅数据变更删除数据文件首选项的使用创建存储实例读取指定文件,将数据加载到Preferences实例,即可创建一个存储实例,用于数据操作。PreferencesAPI提供两套接口来使用Preferences,一套使用Promise,另一套使用callback异步回调的方式。这里我们以callback异步回调为例:包名接口名描述ohos.data.preferencesgetPreferences(context:Context,name:string,callback:AsyncCallback<Preferences>):void读取指定首选项持久化文件,将数据加载到Preferences实例,用于数据操作。首选项的使用数据处理数据处理是对Preference实例的数据进行增删改查。类名接口名描述Preferencesput(key:string,value:ValueType,callback:AsyncCallback<void>):void支持存入值为number、string、boolean、Array<number>、Array<string>、Array<boolean>类型的数据。Preferencesget(key:string,defValue:ValueType,callback:AsyncCallback<ValueType>):void支持获取值为number、string、boolean、Array<number>、Array<string>、Array<boolean>类型的数据。PreferencesgetAll(callback:AsyncCallback<Object>):void支持获取含有所有键值的Object对象。Preferencesdelete(key:string,callback:AsyncCallback<void>):void支持从Preferences实例中删除名为给定Key的存储键值对。Preferenceshas(key:string,callback:AsyncCallback<boolean>):void检查Preferences实例是否包含名为给定Key的存储键值对首选项的使用数据持久化通过执行flush方法,应用可以将缓存的数据再次写回文本文件中进行持久化存储。类名接口名描述Preferencesflush(callback:AsyncCallback<void>):void将Preferences实例通过异步线程回写入文件中。首选项的使用订阅数据变更订阅数据变更,订阅的Key的值发生变更后,在执行flush方法后,会触发callback回调。类名接口名描述Preferenceson(type:'change',callback:Callback<{key:string}>):void订阅数据变更。Preferencesoff(type:'change',callback:Callback<{key:string}>):void注销订阅。首选项的使用删除数据文件通过调用以下两种接口,可以删除数据实例或对应的文件。类名接口名描述ohos.data.preferencesdeletePreferences(context:Context,name:string,callback:AsyncCallback<void>)从缓存中移除已加载的Preferences对象,同时从设备上删除对应的文件。ohos.data.preferencesremovePreferencesFromCache(context:Context,name:string,callback:AsyncCallback<void>):void仅从缓存中移除已加载的Preferences对象,主要用于释放内存。首选项的使用-开发步骤1.准备工作,导入@ohos.data.preferences以及相关的模块到开发环境。importdata_preferencesfrom'@ohos.data.preferences';首选项的使用-开发步骤2.获取Preferences实例。读取指定文件,将数据加载到Preferences实例,用于数据操作。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实例失败。"); return;

}

preferences

=

val;

});

}}首选项的使用-开发步骤3.存入数据。使用put方法保存数据到缓存的实例中。preferences.put('startup','auto',function

(err,val){

if(err){

console.info("保存startup键值对失败,失败原因:"+err);

return;

}

console.info(“保存startup键值对成功。");});首选项的使用-开发步骤4.读取数据。使用get方法读取数据。preferences.get('startup','default',function

(err,val){

if(err){

console.info("读取startup键值对失败,失败原因:"+err);

return;

}

console.info("读取startup的数据为:"+val);});首选项的使用-开发步骤5.数据持久化。应用存入数据到Preferences实例后,可以通过flush方法将Preferences实例回写到文件中。preferences.flush();首选项的使用-开发步骤6.订阅数据变更。应用订阅数据变更需要指定observer作为回调方法。订阅的Key的值发生变更后,当执行flush方法时,observer被触发回调。let

observer

=

function

(key)

{

console.info("The

key"

+

key

+

"

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

observer);//

数据产生变更,由'auto'变为'manual'preferences.put('startup',

'manual',

function

(err)

{

if

(err)

{

console.info("保存startup键值对失败,失败原因:"

+

err);

return;

}

console.info(“保存startup键值对成功。");

preferences.flush(function

(err)

{

if

(err)

{

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

"

+

err);

return;

}

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

//

触发observer方法调用.

})})首选项的使用-开发步骤7.删除指定文件。使用deletePreferences方法从内存中移除指定文件对应的Preferences单实例,并删除指定文件及其备份文件、损坏文件。删除指定文件时,应用不允许再使用该实例进行数据操作,否则会出现数据一致性问题。删除后,数据及文件将不可恢复。da

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论