Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


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.

  • Android - Suspendiendo todos los subprocesos tomó: * ms
  • Cómo escribir un informe de errores de Android en un archivo a través de ADB?
  • Abrir el cajón de navegación cuando se presiona el botón del menú de opciones
  • ¿Cómo salir de un bucle de tiempo después de un tiempo determinado?
  • Error: la vista no está adjunta al administrador de ventanas
  • Vinculación / desvinculación a un servicio en una aplicación
  • ¿Alguien sabe cómo manejar este caso de uso?

  • Problema dibujo de una esfera en OPENGL ES
  • ¿Cuál es el significado de esto en Eclipse: "Camino para el proyecto debe tener sólo un segmento."
  • Diferentes resultados de expresión regular en Java SE y plataforma Android
  • Appcelerator 4 no puede encontrar Android SDK en Mac
  • Adb puede listar dispositivos pero adb shell / logcat no funciona
  • Cómo poner el texto a fluir alrededor de una imagen
  • One Solution collect form web for “Firebase Android: onDataChange () evento siempre ejecutado en el hilo principal de la interfaz de usuario?”

    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í.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.