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.
- Chat uno a uno de Firebase
- Com.google.android.gms.common.internal.safe parcel.safe parcelable no encontrado
- No se pueden crear tareas para cargar Proguard Mapping File.java.lang.IllegalStateException: Resolver la configuración 'androidTestAnnotationProcessor'
- Configuración de Proguard para la biblioteca Firebase-UI
- Firebase onChildAdded para nuevos datos
¿Alguien sabe cómo manejar este caso de uso?
- React-native lento en Android 5.1.1 pero grande en viejo 5.1
- Método de llamada en una actividad en ejecución de un servicio
- ¿Cómo inicializar firebase después del inicio de sesión de google de android?
- Cómo eliminar datos de firebase después de "n" días
- Android - FirebaseListAdapter en orden inverso?
- ¿Cómo eliminar de base de datos en tiempo real firebase?
- Firebase mensajería NoSuchMethodError.zzUr excepción
- Android Firebase DynamiteModule: Error al cargar el descriptor del módulo
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í.