import { preferences } from '@kit.ArkData';
import { BusinessError } from '@ohos.base';
const TAG = 'CacheUtils'
export default class CacheUtils{
static getString(fileName:string,key:string,defaultValue:string):string{
Log.i(TAG,"getString() fileName="+fileName+" key="+key+" defaultValue="+defaultValue);
let options: preferences.Options = { name: fileName };
let dataPreferences = preferences.getPreferencesSync(getContext(), options);
if (dataPreferences){
let value = dataPreferences.getSync(key, defaultValue).toString();
Log.i(TAG,"CacheUtils.getString() fileName="+fileName+" key="+key+" value="+value);
return value;
}
return ''
}
static put(fileName:string,key:string,value:string):void{
Log.i(TAG,"CacheUtils.put() fileName="+fileName+" key="+key+" value="+value);
let options: preferences.Options = { name: fileName };
let dataPreferences = preferences.getPreferencesSync(getContext(), options);
if (dataPreferences){
dataPreferences.putSync(key, value);
dataPreferences.flush((err: BusinessError) => {
if (err) {
Log.e(TAG,"CacheUtils.put() Failed to flush. Cause: " + err);
return;
}
Log.i(TAG,"CacheUtils.put() Succeeded in flushing.");
})
}
}
}
上述代码存储的内容,关闭app再次打开app后读取不到存储的内容
“flush之后重启App”,需要确认重启App的方法:如果通过DevEco点击‘Run’重新运行项目且在‘Run/Debug Configurations’-‘General’-‘Installation Options’-未勾选‘Keep Application Data’,该操作会清除应用之前缓存在本地的数据。