PreferenceDataStore en Android O

He leído este artículo https://medium.com/@ianhlake/hidden-gems-of-android-o-7def63136629 . Esto es lo que está escrito allí:

SharedPreferences está muerto. Larga vida SharedPreferences.

¿ SharedPreferences seguirá funcionando en Android O? ¿Necesitamos implementar un mecanismo propio para almacenar datos en pares de valores clave mediante la implementación de PreferenceDataStore

¿Puede alguien ayudar a cómo sería el enfoque para implementar SharedPreferences nuevo utilizando PreferenceDataStore & ¿Qué es el caso de uso de desarrollar la implementación propia? Cualquier inconveniente en el enfoque actual?

No puedo pensar en un caso en el que es aplicable sólo para usar PreferenceDataStore en lugar de SharedPreferences completamente, pero creo que esto puede ser útil si desea utilizarlos juntos.

SharedPreferences te brinda un gran servicio que es cuando tu aplicación se actualiza, los datos aún permanecen en las preferencias, pero con PreferenceDataStore también almacenas los datos en el mismo formato que en SharedPreferences. Ahora suponga que si desea utilizar la misma interfaz de preferencia, pero que desea almacenar estos valores en la nube en lugar del dispositivo, así porque, los dispositivos pueden romperse.

Lo que PreferenceDataStore puede ayudarle con es que le proporciona la flexibilidad para almacenar datos en cualquier lugar y escribir su propia implementación. No está destinado a reemplazar SharedPreferences completamente aunque usted puede hacerlo si lo desea.

Para obtener un ejemplo, puede utilizar el token de acceso de la aplicación en las preferencias compartidas y todos los demás datos en nube o db local o cloud o tal vez el sistema de archivos si lo desea y puede utilizar la interfaz PreferenceDataStore, anote su propia implementación y luego Úsalo

Incluso en el enlace de la documentación del desarrollador en Google PreferenceDataStore https://developer.android.com/reference/android/preference/PreferenceDataStore.html está escrito

En la mayoría de los casos, desea utilizar SharedPreferences, ya que se realiza una copia de seguridad automática y migra a nuevos dispositivos. Sin embargo, la provisión de almacenamiento personalizado de datos a las preferencias puede ser útil si la aplicación almacena sus preferencias en un db local, en la nube o en un dispositivo específico como "Configuración del desarrollador". También puede ser útil cuando desea usar la interfaz de usuario de preferencias, pero los datos no se deben almacenar en absoluto porque sólo son válidos por sesión.

Así que usted puede ver que incluso google no quiere que utilice PreferenceDataStore todo el tiempo, es sólo por el momento que cuando usted necesita utilizar el mismo estilo Preferencias de almacenamiento de pares de valores clave, pero desea implementar su propio almacén de datos que Le proporcionará más flexibilidad que actualmente tiene en SharedPreferences.

Por ejemplo, ¿qué pasa si desea obtener SharedPreferences y, a continuación, poner los datos de SharedPreferences en un servidor de nube. Lo desea en el dispositivo, pero también se copia de seguridad en la nube, En este escenario PreferenceDataStore puede ayudarle.

Usted debe abandonar el mal hábito de juzgar la cubierta por su libro y leer simplemente el poste mencionado totalmente, en vez de sacar conclusiones del título capturado apenas caprichoso.

Las preferencias compartidas ni siquiera están obsoletas en O y lo que menciona Ian Lake es una mejora de esa característica, permitiendo que tu aplicación mantenga el mismo par de claves / pares de valores como lo es ahora, pero proporcione tu propio mecanismo para almacenar los datos subyacentes Firebase, servidor remoto, etc). Si no te pierdes esa función, puedes simplemente usar Preferencias Compartidas como lo hiciste hasta el momento sin ningún cambio en tu código.

Creo que estás leyendo entre líneas aquí. SharedPreferences no están siendo obsoletas. Sin embargo, vienen con su justa parte de los problemas, por lo que en Android O la interfaz PreferenceDataStore está destinado a dar al desarrollador una opción de desarrollar su propia aplicación que se utilizará en lugar de SharedPreferences. Desde los documentos puede llamar a setPreferenceDataStore y

Si el almacén de datos está establecido, las Preferencias ya no utilizarán SharedPreferences.

Así que creo que lo que quiso decir dentro del post era que ahora tiene una forma construida de desplegar su propio proveedor para superar las deficiencias de SharedPreferences

Creo que has sacado una conclusión equivocada, Shred Preferences está funcionando bien en Android O.

En Android O, las preferencias individuales o incluso todo el PreferenceManager pueden llamar a setPreferenceDataStore (), permitiendo que su aplicación mantenga la misma API simple de par clave / valor, pero proporcione su propio mecanismo para almacenar los datos subyacentes.

Leer desde este enlace

  • ¿Cómo mostrar y ocultar las preferencias en Android dinámicamente?
  • Añadir ActionBar a una preferenciaActividad
  • ¿Cómo agregar efecto de rizado a las preferencias en android?
  • Error: Error: Los tipos de cadenas no están permitidos (en 'entradas' con valor 'array / list')
  • Android set divider padding para la pantalla de preferencias
  • ¿Cómo implementar RingtonePreference en PreferenceFragmentCompat?
  • Android: Cómo obtener el tiempo de un TimePicker cuando se escribe en
  • ¿Qué clase de preferencia para un entero?
  • Cómo llenar ListPreference dinámicamente cuando onPreferenceClick se dispara?
  • Weird SwitchPrefererence en el comportamiento de restablecimiento automático PreferenciaCategoría
  • Cómo administrar divisores en un PreferenceFragment?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.