In un'applicazione Android che utilizza Firebase, ho bisogno di eseguire lunghe operazioni in background quando Firebase restituisce una risposta alla query. Es .:Firebase Android: evento onDataChange() sempre eseguito nel thread dell'interfaccia utente principale?
query.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot data) {
dosomething very long. . .
then call a callback forUI thread
}
So che Firebase eseguire la query in modo asincrono, ma il metodo onDataChange()
sembra essere sempre eseguita nel thread principale dell'interfaccia utente, anche se provo a chiamare la query in uno sfondo personalizzato thread.
Qualcuno sa come gestire questo caso d'uso?
ok ora è più chiaro. Lanciamo un'attività asincrona direttamente nel metodo onDataChange() e questa attività eseguirà il listener dell'interfaccia di callback alla fine. – toofoo
C'è un modo per impostare il thread in cui si desidera ripristinare l'azione di callback? –
Frank, hai in mente questa idea? essere in grado di selezionare il thread che si desidera restituire il callback Firebase? –