¿Es seguro confiar en la llamada a onDataSetChanged () después de onCreated () en RemoteViewsFactory de un AppWidget

Desarrollé mi AppWidget acuerdo al android doc, cargando mi cursor en onCreate() y onDataSetChanged() en onDataSetChanged() , y todo funcionó bien, hasta que establezco algunos puntos de interrupción en mi RemoteViewsService.RemoteViewsFactory y sorprendentemente encontré que onDataSetChanged() siempre se llama Después de la llamada a onCreate() , que hizo que mi cursor se cargara dos veces cuando se creó por primera vez. Estoy en Android 4.4.3.

Según el documento Api ,

Public abstract void onDataSetChanged ()

Añadido en API nivel 11

Se llama cuando se activa notifyDataSetChanged () en el adaptador remoto. Esto permite que RemoteViewsFactory responda a los cambios de datos actualizando cualquier referencia interna. Nota: tareas costosas pueden realizarse de forma segura de forma sincrónica dentro de este método. Mientras tanto, los datos antiguos se mostrarán dentro del widget.

Parece que esta llamada sólo se activa llamando a notifyDataSetChanged () nosotros mismos.

Sin embargo acccording a la guía de Appwidget ,

En onCreate () configura cualquier conexión / cursor a su fuente de datos. El levantamiento pesado, por ejemplo, descargar o crear contenido, etc., debe diferirse a onDataSetChanged () o getViewAt (). Si toma más de 20 segundos en esta llamada, se obtendrá un ANR.

Diciendo diferido , ¿implica que onDataSetChanged() será llamado después de onCreate() ? No estoy tan seguro … Sin embargo, sí dice que debo configurar mi cursor dentro de onCreate() .

Intenté investigar esta edición yo mismo, sin embargo el código fuente disponible está utilizando el Binder así que el llamador alejado sigue siendo desconocido, así que no puedo inspeccionar su fuente.

¿Tiene alguna idea?

One Solution collect form web for “¿Es seguro confiar en la llamada a onDataSetChanged () después de onCreated () en RemoteViewsFactory de un AppWidget”

Como se puede ver en su guía enlazada, onDataSetChanged es cada vez llamado después de onCreate:

Flujo de datos

( Widgets de la aplicación | Desarrolladores de Android )

Por lo tanto, es seguro cargar el cursor en onDataSetChanged

  • ¿Cómo utilizar Glide en remoteViews?
  • No se pudo expandir RemoteViews - Notificación incorrecta
  • Manera fiable de recuperar los detalles de StatusbarNotification (título, texto de notificación)
  • Color del fondo del framelayout del remoteview
  • ¿Es posible agregar a los oyentes onclick a las vistas remotas en android
  • Notificaciones de Remote View de Android
  • Android ¿Cómo setWeight de una RemoteView?
  • Cómo crear ListView con la ayuda de remoteview?
  • Notificación de Android con RemoteViews: actividad asociada con el diseño de RemoteViews
  • Imagen en Widget
  • Cómo actualizar parcialmente las vistas en un widget de aplicación sin reconstruir todas las RemoteViews
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.