首选项

用户首选项

1key 1MB, value 16MB 2存储系统变量,如主题、字体、用户个性化设置 3系统一次性读取全部存储值,默认操作内存,数据都在内存中 4 5异步存储,需要调用flush存到硬盘
key 1MB, value 16MB 存储系统变量,如主题、字体、用户个性化设置 系统一次性读取全部存储值,默认操作内存,数据都在内存中 异步存储,需要调用flush存到硬盘
 1import { preferences } from '@kit.ArkData'  2import { BusinessError } from '@kit.BasicServicesKit'  3  4export class PreferencesUtil {  5 private dataPreferences: preferences.Preferences | null = null  6  7 /**  8 * 初始化  9 * @param context 10 */ 11 init(context: Context, storageName: string) { 12 let options: preferences.Options = { name: storageName } 13 this.dataPreferences = preferences.getPreferencesSync(context, options) 14 15 // on就是给数据设置监听效果 16 let observer = (key: string) => { 17 console.log('key:' + key + ', changed') 18 // this.dataPreferences as preferences.Preferences 19 this.dataPreferences?.flush((err: BusinessError) => { 20 if (err) { 21 console.log(`failed to flush, ${err.name}-${err.message}`) 22 } else { 23 console.log('flush success') 24 } 25 }) 26 } 27 this.dataPreferences.on('change', observer) 28 29 } 30 31 insertData(key: string, value: string) { 32 if (this.dataPreferences?.hasSync(key)) { 33 console.log('this preferences key is contained') 34 } else { 35 this.dataPreferences?.putSync(key, value) 36 console.log('this preferences add success') 37 } 38 } 39 40 async readData(key: string, value?: string) { 41 let val = await this.dataPreferences?.getSync(key, value ? value : 'default') 42 console.log('this preferences get value is:' + val) 43 return val 44 } 45 46 deleteData(key: string) { 47 this.dataPreferences?.delete(key, (err: BusinessError, rows) => { 48 if (err) { 49 console.log(`failed to delete, ${err.name}-${err.message}`) 50 } else { 51 console.log('delete success') 52 } 53 }) 54 } 55} 56 57const preferencesUtil = new PreferencesUtil() 58 59export default preferencesUtil
import { preferences } from '@kit.ArkData' import { BusinessError } from '@kit.BasicServicesKit' export class PreferencesUtil { private dataPreferences: preferences.Preferences | null = null /** * 初始化 * @param context */ init(context: Context, storageName: string) { let options: preferences.Options = { name: storageName } this.dataPreferences = preferences.getPreferencesSync(context, options) // on就是给数据设置监听效果 let observer = (key: string) => { console.log('key:' + key + ', changed') // this.dataPreferences as preferences.Preferences this.dataPreferences?.flush((err: BusinessError) => { if (err) { console.log(`failed to flush, ${err.name}-${err.message}`) } else { console.log('flush success') } }) } this.dataPreferences.on('change', observer) } insertData(key: string, value: string) { if (this.dataPreferences?.hasSync(key)) { console.log('this preferences key is contained') } else { this.dataPreferences?.putSync(key, value) console.log('this preferences add success') } } async readData(key: string, value?: string) { let val = await this.dataPreferences?.getSync(key, value ? value : 'default') console.log('this preferences get value is:' + val) return val } deleteData(key: string) { this.dataPreferences?.delete(key, (err: BusinessError, rows) => { if (err) { console.log(`failed to delete, ${err.name}-${err.message}`) } else { console.log('delete success') } }) } } const preferencesUtil = new PreferencesUtil() export default preferencesUtil

 1Button('设置主题').onClick((event: ClickEvent) => {  2 preferencesUtil.insertData('theme', 'orange')  3})  4  5Button('获取主题').onClick(async (event: ClickEvent) => {  6 const theme = await preferencesUtil.readData('theme', 'blue')  7 console.log('get theme:' + theme)  8})  9 10Button('删除主题').onClick(async (event: ClickEvent) => { 11 const theme = await preferencesUtil.deleteData('theme') 12 console.log('detele theme:' + theme) 13})
Button('设置主题').onClick((event: ClickEvent) => { preferencesUtil.insertData('theme', 'orange') }) Button('获取主题').onClick(async (event: ClickEvent) => { const theme = await preferencesUtil.readData('theme', 'blue') console.log('get theme:' + theme) }) Button('删除主题').onClick(async (event: ClickEvent) => { const theme = await preferencesUtil.deleteData('theme') console.log('detele theme:' + theme) })

1this preferences key is contained 2this preferences get value is:pink
this preferences key is contained this preferences get value is:pink

初始化

 1import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit';  2import { hilog } from '@kit.PerformanceAnalysisKit';  3import { window } from '@kit.ArkUI';  4import { cardDBUtils } from '../utils/CardDBUtils';  5import preferencesUtil from '../utils/PreferencesUtils';  6import kvStore from '../utils/KVStore';  7  8const DOMAIN = 0x0000;  9 10export default class EntryAbility extends UIAbility { 11 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 12 this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); 13 hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); 14 } 15 16 onDestroy(): void { 17 hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); 18 } 19 20 onWindowStageCreate(windowStage: window.WindowStage): void { 21 // 加载数据库 22 cardDBUtils.initCardDB(this.context, 'goodcard') 23 preferencesUtil.init(this.context, 'goodMail') 24 // preferencesUtil.insertData('theme', 'pink') 25 kvStore.init(this.context) 26....
import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; import { cardDBUtils } from '../utils/CardDBUtils'; import preferencesUtil from '../utils/PreferencesUtils'; import kvStore from '../utils/KVStore'; const DOMAIN = 0x0000; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onCreate'); } onDestroy(): void { hilog.info(DOMAIN, 'testTag', '%{public}s', 'Ability onDestroy'); } onWindowStageCreate(windowStage: window.WindowStage): void { // 加载数据库 cardDBUtils.initCardDB(this.context, 'goodcard') preferencesUtil.init(this.context, 'goodMail') // preferencesUtil.insertData('theme', 'pink') kvStore.init(this.context) ....

Powered By 可尔物语

浙ICP备11005866号-12