Ruby - Неизменные объекты

Использовать SharedPreferences очень просто. Вам необходимо определить ключ, который вы будете использовать для получения данных позже. Вы можете хранить строки, целые числа, числа с плавающей запятой, логические значения ... Вы должны предоставить контекст.

Context context = getApplicationContext();

Для записи данных используйте этот код.

SharedPreferences mPrefs = context.getSharedPreferences("YourApp", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = mPrefs.edit();
editor.putString("color", "blue");
editor.apply();

Для извлечения данных используйте это

SharedPreferences mPrefs = context.getSharedPreferences("YourApp", Context.MODE_PRIVATE);
String color = mPrefs.getString("color", "defaultValue");

Вы можете легко изменить тип с String на другие типы, которые могут наилучшим образом соответствовать вашим потребностям.

Надеюсь, это поможет.

8
задан Community 23 May 2017 в 12:17
поделиться

4 ответа

Используя блокировку большая часть appropiate способа сделать это. Вы видите эту презентацию Jim Weirich на предмете: Что Весь Rubyist Должен Знать О Поточной обработке.

Кроме того, замораживание объекта не поможет Вам здесь, так как Вы хотите изменить эти переменные. Замораживание их на месте означает, что никакие дальнейшие модификации не будут применимы к ним (и поэтому Ваш 1% записей не будет работать).

6
ответ дан 5 December 2019 в 21:23
поделиться

Блокировка читателей-устройства записи является типичной проблемой с четко определенным решением:

Блокировка читателей-устройства записи

и существует много реализаций его:

Запишите шаблон блокировки

Вы не хотите ставить блокировку для каждого чтения-записи

0
ответ дан 5 December 2019 в 21:23
поделиться

Необходимо использовать Взаимное исключение для синхронизации доступа к общему состоянию. Действительно нет никакого способа постараться не делать это.

На современных многоядерных машинах Вы не можете сделать предположения о том, как к памяти получат доступ или как доступы памяти будут взаимодействовать с кэшированием.

0
ответ дан 5 December 2019 в 21:23
поделиться

Я сам не использовал его, но вы можете попробовать Dataflow . Это делает все переменные однократно записываемыми.

1
ответ дан 5 December 2019 в 21:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: