Firebase Android: onDataChange () evento siempre ejecutado en el hilo principal de la interfaz de usuario?

En una aplicación de Android que utiliza Firebase, necesito ejecutar operaciones largas en segundo plano una vez que Firebase devuelve una respuesta de consulta. P.ej:

query.addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot data) { dosomething very long. . . then call a callback forUI thread } 

Sé que firebase ejecutar la consulta en modo asíncrono, pero el método onDataChange() parece ser siempre ejecutado en la interfaz de usuario principal Thread, incluso si intento llamar a la consulta en un hilo de fondo personalizado.

¿Alguien sabe cómo manejar este caso de uso?

Las devoluciones de llamada para sus oyentes de Firebase se ejecutan de hecho en el subproceso de interfaz de usuario principal.

Si necesita hacer operaciones pesadas en una devolución de llamada, gire un AsyncTask y haga el trabajo allí. El método AsyncTask.doInBackground() se ejecuta en un subproceso diferente, por lo que no bloqueará la interfaz de usuario de Android. Pero AsyncTask. onPostExecute() AsyncTask. onPostExecute() ejecuta en el hilo principal de nuevo, por lo que puede actualizar sus vistas de interfaz de usuario desde allí.

  • Error SERVICE_VERSION_UPDATE_REQUIRED con Firebase Analytics en Android
  • La aplicación de Android no recibe notificación de Firebase cuando la aplicación se detiene desde la bandeja de tareas múltiples
  • Firebase addValueEventListener sólo funciona durante un par de horas
  • Convención de nomenclatura con la serialización / deserialización de Firebase?
  • Firebase getDownloadURL
  • Android - Iniciar la consulta de base de datos de Firebase no funciona como se esperaba
  • ¿Sólo rellenar viewHolder con mensajes recuperados de la base de datos?
  • Combinación de escuchas de datos en tiempo real Firebase con RxJava
  • Firebase: ¿Cómo mantener un usuario de Android conectado?
  • Cómo manejar la caducidad de token firebase personalizada en Firebase 3.xx
  • Androide. GcmNetworkManager en Firebase SDK?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.