1、EntryAbility获取Context并保存到AppStorage中,可直接在工具类中获取,无需传递
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
AppStorage.setOrCreate<Context>(Constant.KEY_CONTEXT_ABILITY,this.context)
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}
2、PreferUtil非业务工具类
import { preferences } from '@kit.ArkData'
import { PreferConstant } from './PreferConstant'
import { Context } from '@kit.AbilityKit'
import { Constant } from '../app/Constant'
export class PreferUtil {
static getStore(){
const context = AppStorage.get<Context>(Constant.KEY_CONTEXT_ABILITY)
return preferences.getPreferencesSync(context, {
name: PreferConstant.APP_STORE_DEFAULT
})
}
static put(key: string, value: preferences.ValueType) {
const store = PreferUtil.getStore()
store.putSync(key, value)
store.flush()
}
static get(key: string, defaultValue: preferences.ValueType) {
const store = PreferUtil.getStore()
return store.getSync(key, defaultValue)
}
static delete(key: string) {
const store = PreferUtil.getStore()
store.deleteSync(key)
store.flush()
}
}
3、分功能模块写管理工具类,如AppPreferHelper、UserHelper等
import { PreferConstant } from './PreferConstant'
import { PreferUtil } from './PreferUtil'
export class AppPreferHelper {
static saveToken(token: string) {
PreferUtil.put(PreferConstant.KEY_TOKEN, token)
}
static getToken() {
return PreferUtil.get(PreferConstant.KEY_TOKEN, "") as string
}
}
4、常量类PreferConstant只放首选项相关
export class PreferConstant {
static APP_STORE_DEFAULT = "default_store" // 首选项仓库的key
static KEY_TOKEN="token"
static KEY_USER_INFO="userinfo"
}