SharedPreferences: ¿Es una clase o una interfaz?

Estoy confundido, por favor ayúdame.

La documentación de los desarrolladores de Android dice SharedPreferences es una interfaz y también podemos ver en grepCode que SharedPreferences es una interfaz .

Pero developers.android también dice SharedPreferences es una clase.

Escriben.

"La clase SharedPreferences proporciona un marco general …"

Entonces, SharedPreferences es una clase o una interfaz ?

Las documentaciones no está mal, pero puede ser un poco confuso.

Si ve el código, verá que SharedPreferences es en realidad una interfaz. Pero como usted mencionó, aquí se está refiriendo a su implementación en clase que en SharedPreferencesImpl realmente y usted puede mirar en su aplicación aquí . Cuando realiza una llamada al método getSharedPreferences() , en realidad devuelve el objeto SharedPreferencesImpl que es una clase que implementa la interfaz SharedPreferences .

Bueno, SharedPrefs es una interfaz. Es implementado por SharedPreferencesImpl que nos proporciona la funcionalidad que el doc habla sobre prefs compartidos. Aunque SharedPreferencesImpl no ha estado en el documento, SharedPreferences siempre ha sido la cara de la funcionalidad.

SharedPreferences es una interfaz, pero implementada como una clase. Esta concepción es una fábrica abstracta, una especie de patrón de diseño. La declaración de SharedPreferences es interfaz, pero getSharedPreference () devuelve una clase que implementa la interfaz SharedPreferences.

Sharedferencias es una interfaz. puede ver aquí que Sharedpreferences tiene la interfaz como su padre.

Interfaz para acceder y modificar los datos de preferencia devueltos por getSharedPreferences (String, int). Para cualquier conjunto particular de preferencias, hay una única instancia de esta clase que comparten todos los clientes.

Para más información, puede ver esta respuesta.

  • Android Menu sólo funciona una vez por ejecución de aplicación
  • ¿Cuándo se aplicarán SharedPreferences () y commit ()?
  • ¿Puede alguien explicar cómo SharedPreferences almacena un conjunto de cadenas
  • Las preferencias compartidas de Android no funcionan
  • Preferencias compartidas "límite"
  • sharedPreferences no compartirá entre las actividades
  • Sharedpreference byte valor eliminado después de que la aplicación se haya eliminado mediante 'Force Stop' o el administrador de tareas
  • ¿Cómo utilizo las preferencias compartidas en un fragmento de Android?
  • Escribir la clave pública / privada en SharedPreferences y usarla
  • Cómo analizar JSON analizado para uso sin conexión
  • ¿Por qué preferences.getString ("key", "DEFAULT") devuelve siempre "DEFAULT"?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.