Зачем SharedPreferences нужны два ключа? - PullRequest
2 голосов
/ 17 марта 2019

Я пытаюсь создать один объект, который обрабатывает все мои SharedPreferences, поскольку они в основном используются во всем приложении, и я не совсем понимаю, почему для получения значения нужны два ключа.

Вызов выглядит так:

context.getSharedPreferences(FirstKey, Context.MODE_PRIVATE).getString(SecondKey, default)

Я понял, что он в основном построен как двумерный массив.FirstKey дает мне набор пар ключ-значение, которые я могу использовать для включения значения SecondKey.И я понимаю, что если у меня есть десятки SharedPreferences, это может пригодиться для управления ими и предотвращения путаницы / нежелательной перезаписи.

Но нужно ли это, если у меня всего 10 настроек, которые я сохраняю, или это так?разумно просто использовать один FirstKey для всех моих предпочтений?

Ответы [ 5 ]

2 голосов
/ 17 марта 2019

Но нужно ли это, если у меня всего 10 настроек, которые я сохраняю? или разумно просто использовать один FirstKey для всех моих предпочтения?

Так что в этом случае вы можете избежать использования этого FirstKey, используя getDefaultSharedPreferences(), например:

SharedPreferences.Editor editor =  PreferenceManager.getDefaultSharedPreferences(context).edit();
editor.putString("myKey", "myValue");
editor.apply();

или прочитайте уже установленные настройки:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
String myPref = prefs.getString("myKey", "myDefaultValue"); 
2 голосов
/ 17 марта 2019

Я предполагаю, что инкапсулирует, организует и управляет лучшими группами (значения первого ключа) данных, которые вы хотите сохранить (значения второго ключа).Поэтому, если вы хотите, например, получить все настройки, вы можете сгруппировать их по файлу настроек (первая клавиша).Или в случае, если вы хотите удалить все сохраненные значения, относящиеся к предпочтениям пользователя (предпочтительный язык, предпочтительная валюта ...), вы можете организовать эти данные в файле «UserPref» (первый ключ), а затем вы можете выполнить итерацию в нем, чтобы удалитьвсе из них, когда вы выходите из системы или что-то другое, что вы считаете полезным для вашего пользовательского опыта.

0 голосов
/ 17 марта 2019

Как вы правильно сказали, первый ключ представляет собой группу пар ключ-значение (которая на самом деле очень похожа на один файл), а второй ключ помогает вам получить значения в этом файле / группе.

Лично я считаю, что этот дизайн хорош, особенно в тех случаях, когда вы можете разделить все свои ценности на разные категории. Если ваше приложение «маленькое», вы можете сохранить все свои значения в одном файле / группе. В противном случае вы можете разбить все свои значения на отдельные файлы / группы.

Надеюсь, это поможет .. Веселого кодирования!

0 голосов
/ 17 марта 2019

Вы можете использовать только свой «FirstKey» для всех своих предпочтений и, как правило, только для нас.Вы можете создать несколько экземпляров общего предпочтения, изменив «Первый ключ» во время getSharedPreference ().Предположим, вы хотите использовать два разных общих предпочтения для двух разных модулей в своем проекте, а затем измените параметр «FirstKey», в этом случае вам нужно соблюдать осторожность при сохранении и извлечении данных из предпочтения, так как у вас есть два разных общих предпочтения.

0 голосов
/ 17 марта 2019

Первая клавиша Получить и удержать содержимое файла настроек

Вторая клавиша Получить и удержать значение в этом файле

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...