Трей — замена «Предпочтениям» в OpenHarmony
Трей — это упомянутый подход к управлению данными между процессами. Трей также предоставляет расширенный API, который делает доступ и управление данными очень простым с помощью механизмов обновления и миграции. Добро пожаловать в «Предпочтения 2.0», также известные как Трей.
Простое руководство по использованию Трея в вашем проекте вместо «Предпочтений».
// Загрузка Sqlcipher и инициализация имени и версии базы данных
SQLiteDatabase.loadLibs(this);
SqlcipherDbHelper.setDbVerName(DATABASE_VERSION, DATABASE_NAME);
preferencesHelper = PreferencesHelper.getInstance();
preferencesHelper.init(this);
preferencesHelper.putInt(KEY_COUNTER, INT_VALUE);
preferencesHelper.putString(KEY_WRITE_SHARED, STRING_VALUE);
// Миграция значения предпочтения в Трей
mAppPrefs = new AppPreferences(this);
mImportPreference = new ImportTrayPreferences(this);
mImportPreference.migrate(sharedPreferencesImport);
Нет Editor
, нет commit()
или apply()
.
Рекомендуется группировать предпочтения в модули, а не помещать всё в один глобальный модуль. Если вы раньше использовали «Предпочтения», то могли использовать разные файлы для группировки своих предпочтений. Расширение TrayModulePreferences
и размещение всех ключей внутри этого класса — рекомендуемый способ сохранить код чистым.
// Создание доступа к предпочтениям для модуля
public class MyModulePreference extends TrayPreferences {
public static String KEY_IS_FIRST_LAUNCH = "first_launch";
public MyModulePreference(final Context context) {
super(context, "myModule", 1);
}
}
// Доступ к предпочтениям моего собственного модуля
final MyModulePreference myModulePreference = new MyModulePreference(this);
myModulePreference.put(MyModulePreference.KEY_IS_FIRST_LAUNCH, false);
Чтобы перенести значения из «Предпочтений», необходимо создать собственный модуль предпочтений. Этот модуль теперь будет хранить все ваши значения «Предпочтений».
public class ImportPreferences extends TrayPreferences {
// Имя SharedPreferences
private static final String SHARED_PREFERENCES_FILE_NAME = "PREF_NAME";
// Ключ внутри SHARED_PREFERENCES_NAME
private static final String KEY_FIRST_LAUNCH = "KEY_FIRST_LAUNCH";
// Новый ключ для этого модуля
private static final String KEY_FIRST_LAUNCH_TRAY = "KEY_FIRST_LAUNCH_TRAY";
public ImportPreferences(@NonNull Context context) {
super(context, "myImportModule", 1);
}
// Вызывается только один раз при создании модуля
@Override
protected void onCreate(int initialVersion) {
super.onCreate(initialVersion);
// Создаём объект SharedPreferencesImport
final SharedPreferencesImport sharedPreferencesImport =
new SharedPreferencesImport(this, MainAbilitySlice.SHARED_PREF_NAME,
MainAbilitySlice.SHARДЕНО_PREF_KEY, TRAY_PREF_KEY);
// Наконец переносим его
mImportPreference.migrate(sharedPreferencesImport);
}
}
Сгенерируйте пакет .har через библиотеку и добавьте пакет .har в папку libs.
Добавьте файл sqlcipher.so в папку libs/arm64-v8a.
allprojects {
repositories {
mavenCentral()
}
}
dependencies {
implementation 'io.openharmony.tpc.thirdlib:tray:1.0.1'
implementation 'io.openharmony.tpc.thirdlib:ohos-database-sqlcipher:1.0.1'
}
Copyright 2015 grandcentrix GmbH
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
``` Если это не противоречит действующему законодательству или если иное не оговорено в письменной форме, программное обеспечение, распространяемое по Лицензии, предоставляется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых.
См. Лицензию для ознакомления с конкретным языком, регулирующим разрешения и ограничения по Лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )