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