1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/harmonyos-cases-cases

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
PreferencesManager.ets 5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
zhangzihang Отправлено 24.10.2024 15:44 f85c75b
/*
* Copyright (c) 2024 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import dataPreferences from '@ohos.data.preferences';
import { FaultDataSource } from '../model/DataSource';
import { BusinessError } from '@ohos.base';
import { logger } from '../utils/Logger';
// TODO:知识点:初始化Preferences实例,用于异常信息的持久化存储以及获取持久化数据功能
let dataPreferencesManager: dataPreferences.Preferences = {} as dataPreferences.Preferences;
export class PreferencesManager {
// 获取Preferences实例
public static async getPreferences(faultDataSource: FaultDataSource): Promise<void> {
logger.info('getPreferences start.');
try {
let val: dataPreferences.Preferences = await (dataPreferences.getPreferences(AppStorage.get('context'),
'myStore') as Promise<dataPreferences.Preferences>);
dataPreferencesManager = val;
logger.info('Succeeded in getting preferences.');
// 获取异常信息
await PreferencesManager.getFaultMessage(faultDataSource);
await PreferencesManager.getFaultSign();
} catch (err) {
logger.error("Failed to get preferences");
}
}
/**
* 存储数据异常信息
* @param faultMessage 异常信息集合
*/
public static async putFaultMessage(faultMessage: Array<string>): Promise<void> {
logger.info(`putMessage start`);
try {
// TODO:知识点:通过 dataPreferencesManager.put方法存储数据
dataPreferencesManager.put('faultMessage', JSON.stringify(faultMessage), async (err: BusinessError) => {
if (err) {
logger.error("Failed to put value of 'faultMessage'. code =" + err.code + ", message =" + err.message);
return;
}
logger.info('Succeeded in putting value of faultMessage.');
dataPreferencesManager.flush();
})
} catch (err) {
const code = (err as BusinessError).code;
const message = (err as BusinessError).message;
logger.error("Failed to put value of 'catch err'. code =" + err.code + ", message =" + err.message);
}
}
/**
* 获取数据异常信息
* @param faultMessage 异常信息集合
*/
public static async getFaultMessage(faultDataSource: FaultDataSource): Promise<void> {
logger.info(`getFaultMessage start`);
try {
// TODO:知识点:通过dataPreferencesManager.get方法获取异常信息数据
const data: dataPreferences.ValueType = await dataPreferencesManager.get('faultMessage', []);
if (typeof data === 'string') {
const faultData: Array<string> = JSON.parse(data);
// 将异常数据添加到懒加载数据源中
faultData.forEach((item: string) => {
faultDataSource.pushData(item);
})
// 双向数据绑定懒加载数据源长度,更新数据源长度
AppStorage.setOrCreate('faultDataSourceLength', faultDataSource.totalCount())
logger.info('Succeeded in getting value of faultMessage.');
}
} catch (err) {
logger.error("Failed to get value of 'catch err'. code =" + err.code + ", message =" + err.message);
}
}
/**
* 存储数据标识
*/
public static async putFaultSign(): Promise<void> {
logger.info(`putMessage start`);
try {
// TODO:知识点:通过 dataPreferencesManager.put方法存储数据
dataPreferencesManager.put('faultSign', JSON.stringify(true), async (err: BusinessError) => {
if (err) {
logger.error("Failed to put value of 'faultSign'. code =" + err.code + ", message =" + err.message);
return;
}
logger.info('Succeeded in putting value of faultSign.');
dataPreferencesManager.flush();
})
} catch (err) {
logger.error("putFaultSign Failed to put value of 'catch err'. code =" + err.code + ", message =" + err.message);
}
}
/**
* 获取数据异常信息
*/
public static async getFaultSign(): Promise<void> {
logger.info(`getFaultMessage start`);
let faultSign: boolean = false;
try {
// TODO:知识点:通过dataPreferencesManager.get方法获取异常标识
const data: dataPreferences.ValueType = await dataPreferencesManager.get('faultSign', faultSign);
if (typeof data === 'string') {
faultSign = JSON.parse(data);
AppStorage.setOrCreate('faultSign', faultSign);
}
} catch (err) {
logger.error("getFaultSign Failed to get value of 'catch err'. code =" + err.code + ", message =" + err.message);
}
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/harmonyos-cases-cases.git
git@api.gitlife.ru:oschina-mirror/harmonyos-cases-cases.git
oschina-mirror
harmonyos-cases-cases
harmonyos-cases-cases
master