import dataPreferences from '@ohos.data.preferences'; import bundleManager from '@ohos.bundle.bundleManager';
本地首选项数据的保存,利用key value
【使用要求】
DevEco Studio 3.1.1 Release api 9
【使用示例】
1、app启动时,从本地读取数据,并写到内存中去 注意:修改EntryAbility.ts的扩展名,改成ets,即:EntryAbility.ets
import MyPreferencesUtil from '../common/utils/MyPreferencesUtil'
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
MyPreferencesUtil.getData(this.context)
}
}
2、在修改内存数据时,再调用一下保存方法 注意:开发工具DevEco studio中,默认每次启动app是先卸载再安装导致本地保存的数据丢失,需要改下配置每次运行都覆盖安装【entry-->edit config... --> keep application data】
import {MyPreferencesUtil,UserInfo} from '../common/utils/MyPreferencesUtil'
Button('测试').onClick(()=>{
console.info('====当前内存信息 1 ',JSON.stringify(MyPreferencesUtil.getInstance()))
MyPreferencesUtil.getInstance().mUserInfo.token = "测试测试"
MyPreferencesUtil.saveData()
console.info('====当前内存信息 2 ',JSON.stringify(MyPreferencesUtil.getInstance()))
})
export class MyPreferencesUtil {
//日志过滤器
private static readonly LOG: string = "====MyPreferencesUtil"
//本地保存的文件名,和文件内的key名这里打算共用一个就行
private static readonly FILENAME_AND_KEY: string = 'FILENAME_AND_KEY'
/** 本地要保存的用户信息 */
public mUserInfo: UserInfo = new UserInfo()
// 本地要保存的环境信息
public mEnvirInfo: EnvirInfo = new EnvirInfo()
//=========单例模式,保存数据到内存实例 start=========
private static instance: MyPreferencesUtil;
private con