usar que getpreferences from data como code and java android sharedpreferences

java - que - sharedpreferences android code



Diferencia entre cometer y aplicar en Android SharedPreferences (2)

Esta pregunta ya tiene una respuesta aquí:

SharedPreferences se utilizan para guardar datos de la aplicación en Android.

commit() y apply() se utilizan para guardar los cambios en las preferencias compartidas.

Como se menciona en la biblioteca de Android:

public abstarct void apply():

A diferencia de commit (), que escribe sus preferencias en el almacenamiento persistente de forma sincrónica, apply () confirma sus cambios en las SharedPreferences en la memoria de inmediato, pero inicia una confirmación asíncrona en el disco y no se le notificará ningún error. Si otro editor en este SharedPreferences hace un commit regular () mientras un apply () todavía está pendiente, el commit () se bloqueará hasta que se completen todos los commit asíncronos, así como el commit mismo.

public abstract boolean commit ():

Confirme los cambios de preferencias de este Editor al objeto SharedPreferences que está editando. Esto realiza atómicamente las modificaciones solicitadas, reemplazando lo que se encuentra actualmente en las SharedPreferences.

¿Significa esto que los cambios realizados por commit() son instantáneos en comparación con apply() ? ¿Cuál es mejor?

Si necesito usar el mismo valor de preferencia compartido en la siguiente actividad inmediata, ¿cuál debo usar? Como he visto, si el valor de Preferencia se actualiza, no se refleja hasta que se reinicia la aplicación.


Commit() es instantáneo pero realiza escrituras en disco. Si está en el subproceso de la interfaz de usuario debe llamar a apply() que es asíncrono.


apply () - devuelve void

apply () se agregó en 2.3 , se guarda sin devolver un valor booleano que indique el éxito o el fracaso.

commit () - devuelve un valor booleano .

commit () devuelve true si el guardado funciona, falso de lo contrario. apply() se agregó a medida que el equipo de desarrollo de Android notó que la mayoría de los usuarios no notaron el valor de retorno, por lo que aplicar es más rápido.

Puede consultar el siguiente enlace

¿Cuál es la diferencia entre commit () y apply () en la preferencia compartida?