Harmony-Free: Hengong Preferences - Preferences Settings

Hello everyone, nice to meet you all! Today, we are going to talk about the preferences data storage commonly used in HarmonyOS. During the development process, we usually use some persistent data storage methods. Some user data and commonly used fixed data can all be stored using preferences.
一、Let's have a brief look at the preferences data storage. Preferences use Key-Value key-value type for data storage, and data is stored and retrieved through the Key.
1、preferences Create data storage instance instantiation
preferences = preferences.getPreferencesSync(getContext(), { name: 'base' });
2、preferences Basic method,def As the default value,value For data values
// Store data
preferences.put(key, value)
preferences.putSync(key, value)
// Obtain data
preferences.get(key, value)
preferences.getSync(key, def)
// Obtain all the data
preferences.getAll();
preferences.getAllSync();
// Delete data
preferences.delete(key)
preferences.deleteSync(key)
// Clear data
preferences.clear();
preferences.clearSync();
// Synchronize to the preferences library
preferences.flush();
3、After performing operations on the stored data, a flush synchronization is required. Therefore, it is possible to directly perform the flush operation after performing put, delete, and clear operations.
// Add or update and synchronize
putFlush(key: string, value: preferences.ValueType) {
preferences.putSync(key, value)
preferences.flush()
}
// Delete and synchronize
deleteFlush(key: string) {
if (this.has(key)) {
preferences.deleteSync(key)
preferences.flush()
}
}
// Clear and synchronize
clearFlush() {
preferences.clearSync()
preferences.flush()
}
4、Based on these, implement multi-value storage and multi-value retrieval
// Obtain multiple pieces of data
getForKeys(...keys: string[]): Map<string, preferences.ValueType> {
let map: Map<string, preferences.ValueType> = new Map<string, preferences.ValueType>()
keys.forEach((key) => {
let value = preferences.getSync(key)
map.set(key, value)
})
return map
}
// Store multiple pieces of data
putMap(map: Map<string, preferences.ValueType>) {
map.forEach((v, k) => {
preferences.putSync(k, v)
})
}
// Store multiple pieces of data and synchronize them
putMapFlush(map: Map<string, preferences.ValueType>) {
map.forEach((v, k) => {
preferences.putSync(k, v)
})
preferences.flush()
}
// Delete multiple pieces of data
deleteForKeys(...keys: string[]){
keys.forEach((key) => {
this.delete(key)
})
}
// Delete multiple pieces of data and synchronize.
deleteForKeysFlush(...keys: string[]){
keys.forEach((key) => {
this.delete(key)
})
preferences.flush()
}
Note: The complete code has been submitted toHongmeng Tripartite Library,Use the following command to install.
ohpm install @free/preferences
Calling method: It is recommended to use the one with the "Flush" method as the default option.
new PreferencesUtils().get("");
new PreferencesUtils().getForKeys("","","");
new PreferencesUtils().getAll();
new PreferencesUtils().getMap();
new PreferencesUtils().put("",0);
new PreferencesUtils().putFlush("",0);
new PreferencesUtils().putMap(new Map);
new PreferencesUtils().putMapFlush(new Map);
new PreferencesUtils().delete("");
new PreferencesUtils().deleteFlush("");
new PreferencesUtils().deleteForKeys("","","");
new PreferencesUtils().deleteForKeysFlush("","","");
new PreferencesUtils().clear()
new PreferencesUtils().clearFlush()
If you like this content, please give a little heart!
Subscribe to my newsletter
Read articles from bangjin yu directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
