Różnica między zatwierdzeniem a zastosowaniem w Android SharedPreferences [duplikat]

To pytanie ma już odpowiedź tutaj:

Jaka jest różnica między zatwierdzeniem () a zastosowaniem () we Wspólnych preferencjach 7 odpowiedzi

SharedPreferences służą do zapisywania danych aplikacji w systemie Android.

commit() iapply() oba służą do zapisywania zmian we wspólnych preferencjach.

Jak wspomniano w Bibliotece Androida:

public abstarct void apply():

W przeciwieństwie do commit (), który synchronicznie zapisuje swoje preferencje w trwałym magazynie, Apply () natychmiast zatwierdza zmiany w SharedPreferences w pamięci, ale uruchamia asynchroniczne zatwierdzanie na dysku i nie zostaniesz powiadomiony o żadnych awariach. Jeśli inny edytor w tej opcji SharedPreferences wykonuje zwykłe zatwierdzenie (), podczas gdy funkcja apply () jest nadal zaległa, zatwierdzenie () będzie blokować do momentu zakończenia wszystkich zatwierdzeń asynchronicznych, a także samego zatwierdzenia.

public abstract boolean commit ():

Zatwierdź swoje preferencje z powrotem z tego edytora do obiektu SharedPreferences, który edytuje. To atomowo wykonuje żądane modyfikacje, zastępując wszystko, co aktualnie znajduje się w SharedPreferences.

Czy oznacza to, że zmiany wprowadzone przezcommit() są natychmiastowe w porównaniu zapply()? Który jest lepszy

Jeśli muszę użyć tej samej wspólnej wartości preferencji w następnej natychmiastowej czynności, której z nich powinienem użyć? Jak zauważyłem, jeśli wartość Preferencji jest aktualizowana, nie jest ona odzwierciedlana do momentu ponownego uruchomienia aplikacji.

questionAnswers(2)

yourAnswerToTheQuestion