¿Cómo almacenar datos para un widget?

Estoy creando un widget, y necesito almacenar algunos datos para ello. No tengo una Activity con el widget, por lo que no puedo utilizar SharedPreferences . Los datos que estoy almacenando son muy pequeños pero se accede con frecuencia, por lo que sería excesivo utilizar una base de datos para ello. He pensado en usar archivos simples, pero eso no parece una buena solución. ¿Hay alguna manera de almacenar datos simples para un widget?

No necesita una Activity para almacenar preferencias, solo un Context . En su clase que extiende AppWidgetProvider , debe recibir un contexto en todos los métodos pertinentes como onUpdate y onDeleted .

A continuación, puede utilizar PreferenceManager para obtener el objeto de preferencia y almacenar lo que necesita en él, como esto:

 @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); String value = prefs.getString("key-string", null); if(value != null) { // do stuff } } 

Como una nota lateral, menciona que consideró usar archivos pero no quiso hacerlo por razones de rendimiento. SharedPreferences objetos SharedPreferences terminan usando archivos sencillos, solo son administrados por Android. Si vas a tener acceso a menudo, todavía tendrá que ser cuidadoso con el rendimiento. Lo mismo ocurre con los DB de SQLite, ya que esos son sólo archivos.

Esos métodos regulares Widget contienen contexto es cierto, pero ¿qué pasa si esos contextos cambian? Por ejemplo, una aplicación llamada una acción que escuchar el widget con onReceive y guardar datos con ese contexto será capaz de leerlo con la acción de otra aplicación? – otro contexto.

¿Qué pasa si se anularía la aplicación y lo obtendría? – con actividad funciona, no estoy seguro sobre widget!

  • Actualización de Android Widget
  • ¿Cómo puedo crear un widget de aplicación de paginación de Android compatible con versiones anteriores?
  • El widget de la aplicación de Android se bloquea después de un período de tiempo indefinido
  • El fondo del widget de Android no aparece, no responde
  • Creación de una vista previa de un widget dentro de la actividad de configuración
  • Activar o desactivar dinámicamente un widget no funciona
  • Múltiples instancias de intención pendiente
  • Estilos de widgets personalizados de Android: cómo colocarlos en un espacio de nombres?
  • Coordenadas de la pantalla de inicio de Android y xy
  • Animación en la barra de notificaciones Vista personalizada
  • Actualizar ViewFlipper's Child View cuando ViewFlipper es como Widget
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.