Difference Между фиксацией и применением в Android SharedPreferences [duplicate]
На этот вопрос уже есть ответ:
В чем разница между commit () и apply () в общих настройках 7 ответовSharedPreferences используются для сохранения данных приложения в Android.
commit()
а такжеapply()
оба используются для сохранения изменений в общих настройках.
Как уже упоминалось в библиотеке Android:
public abstarct void apply():
Unlike commit (), который синхронно записывает свои настройки в постоянное хранилище, apply () немедленно фиксирует свои изменения в SharedPreferences в памяти, но запускает асинхронную фиксацию на диск, и вы не будете уведомлены о каких-либо сбоях. Если другой редактор в этой SharedPreferences выполняет обычную commit (), а apply () еще не выполнено, commit () будет блокироваться до тех пор, пока не будут выполнены все асинхронные коммиты, а также сам коммит.
public abstract boolean commit ():
Принять изменения ваших предпочтений обратно из этого редактора в объект SharedPreferences, который он редактирует. Это атомарно выполняет запрошенные модификации, заменяя все, что в настоящее время находится в SharedPreferences.
Означает ли это, что изменения, сделанныеcommit()
мгновенные по сравнению сapply()
? Какой из них лучше
Если мне нужно использовать то же значение общего предпочтения в следующей немедленной операции, какое из них мне следует использовать? Как я видел, обновляется ли значение Preference, оно не отражается до перезапуска приложения.