HarmonyOS 鸿蒙Next 如何优雅的封装一个用户首选项工具类
描述: 如题,我想封装一个持久化工具类,可以理解为单例,我在每个需要存储的地方直接调用 UserInfoUtil.put(key,value) 需要获取值的地方调用 UserInfoUtil.(key) 如下是我的代码,如何完善呢? 这种单例,如果传入context 是否有内存泄漏问题呢?
const PREFERENCES_NAME = 'user.db'
let userPreference: preferences.Preferences | null = null
export class UserInfoUtil {
private static delegate = new UserInfoUtil()
private constructor() {
}
static getInstance() {
return UserInfoUtil.delegate
}
async getPreferencesFromStorage() {
let context = getContext(this) as Context
userPreference = await preferences.getPreferences(context, PREFERENCES_NAME)
}
async putPreference(key: string, data: string) {
if (userPreference !== null) {
await userPreference.put(key, data)
await userPreference.flush()
}
}
async getStringPreference(key: string): Promise<string> {
let result: string = ''
if (userPreference !== null) {
result = await userPreference.get(key, '') as string
return result
}
return result
}
async getBooleanPreference(key: string): Promise<boolean> {
let result: boolean = false
if (userPreference !== null) {
result = await userPreference.get(key, '') as boolean
return result
}
return result
}
}
更多关于HarmonyOS 鸿蒙Next 如何优雅的封装一个用户首选项工具类的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
您可参考官方封装样例:https://gitee.com/harmonyos/codelabs/tree/master/Preferences
该demo中是对Fruit实例进行封装,您可参考之对您的UserInfo实例进行封装。
更多关于HarmonyOS 鸿蒙Next 如何优雅的封装一个用户首选项工具类的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS鸿蒙Next中,封装用户首选项工具类可以通过以下步骤实现,主要利用Preferences
API来存取用户数据。
-
创建工具类:定义一个静态类,用于封装与首选项相关的操作。
-
初始化Preferences:在工具类中,定义一个静态方法,用于获取
Preferences
实例。 -
提供存取方法:定义存取首选项数据的静态方法,如
putString
、getString
、putInt
、getInt
等,这些方法内部调用Preferences
实例的相应方法。
示例代码:
import ohos.aafwk.ability.AbilityContext;
import ohos.data.preferences.Preferences;
public class UserPreferences {
private static final String PREF_NAME = "user_prefs";
private static Preferences preferences;
static {
preferences = new Preferences(AbilityContext.getApplicationContext(), PREF_NAME);
}
public static void putString(String key, String value) {
preferences.putString(key, value);
}
public static String getString(String key, String defaultValue) {
return preferences.getString(key, defaultValue);
}
// 类似地,添加putInt, getInt等方法
}
上述代码展示了如何封装一个基本的用户首选项工具类。该类提供静态方法,用于存取字符串类型的数据。你可以根据需求扩展该类,添加对其他类型数据的支持。
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html