Sto utilizzando Firebase per creare una piccola applicazione di chat. Voglio che ChildEventListener
continui ad ascoltare la posizione del database di Firebase anche se la mia app è in background o è stata chiusa. Attualmente sto registrando e quando la mia app si chiude o si chiude usando finish()
, dopo di che nessuno dei miei metodi di ChildEventListener viene chiamato come onChildAdded
o onChildChanged
sebbene non abbia chiamato removeEventListener
. Voglio che ChildEventListener sia sempre in esecuzione in background. C'è comunque di farlo?Firebase: continua ad ascoltare ChildEventListener anche se l'app termina
risposta
utilizzare il servizio per ascoltare la vostra ChildEventListener
public class ChildEventListener extends Service {
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//Adding a childevent listener to firebase
Firebase myFirebaseRef = new Firebase("FirebaseURL");
myFirebaseRef.child("FIREBASE_LOCATION").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
//Do something using DataSnapshot say call Notification
}
@Override
public void onCancelled(FirebaseError error) {
Log.e("The read failed: ", error.getMessage());
}
});
}
@Override
public void onCancelled(FirebaseError firebaseError) {
Log.e("The read failed: ", firebaseError.getMessage());
}
});
return START_STICKY;
}
}
Registra il servizio all'interno manifesto
<service android:name=".ChildEventListener "/>
Avviare il servizio e ascoltare per childEvents, dove/quando iniziare il vostro servizio è fino alla chat app design
ma quando avvierò la mia istanza di servizio esistente, registrerà nuovamente ChildEventListener che sta causando più listener di ChildEventListener. È comunque necessario verificare che il mio ChildEventListener stia già ascoltando? –
Usa sharedPreferences per verificare se il tuo ascoltatore childEvent è attivo o meno. Se non è in ascolto, aggiungi solo quel listener di eventi –
questo è quello che sto dicendo, come verificare che ChildEventListener? c'è qualche ascoltatore che mi dirà che non sta ascoltando? –
- 1. Hangfire continua a eseguire query SQL anche se inattive
- 2. Task.Factory.ContinueWhenQualsiasi operazione continua quando un'operazione termina senza eccezioni
- 3. WakeLock finalizzato mentre si continua a contenere errori anche se lo sto rilasciando
- 4. Barra del titolo continua ad apparire, anche con requestWindowFeature o Android: tema
- 5. Salva qualsiasi PFObject non salvato Anche l'utente termina l'app
- 6. Impaginazione Android Firebase
- 7. Apri MPI/MPICH - Cosa succede se un nodo termina?
- 8. Script di Bash che termina dopo il primo risultato diverso da zero anche se -e non è impostato in ENV
- 9. Il programma termina bruscamente anche nel debugger - come è successo?
- 10. Il modello continua a ridisegnare, anche se non sono stati modificati i dati sottostanti
- 11. Come faccio ad ascoltare bitcoind su 0.0.0.0:8332?
- 12. Come faccio ad ascoltare per il database SQL Server cambia
- 13. Come forzare Typesafe Activator ad ascoltare 0.0.0.0:8888
- 14. Come ascoltare Dev/binder?
- 15. maven force continua se un modulo fallisce
- 16. come sapere se una stringa $ termina con ','?
- 17. TCP La ritrasmissione continua anche dopo l'azzeramento del flag RST
- 18. AF L'assegnazione della memoria di rete continua ad aumentare
- 19. java.io.NotSerializableException anche se implemento "Serializable"
- 20. Google firebase verifica se esiste un figlio
- 21. Verifica se una stringa termina con un numero in PHP
- 22. C# dictionary o semplicemente continua ad usare le liste?
- 23. Come termina la connessione TCP se una delle macchine muore?
- 24. Perché Dispose viene chiamato su DataContract anche se il servizio si riferisce ancora ad esso?
- 25. ANTLR analizza avidamente anche se può corrispondere alla regola ad alta priorità
- 26. non trovata, strace mostra di provare ad accedere al percorso valido anche se
- 27. Come ascoltare le modifiche dei dati in più di una posizione particolare in Firebase?
- 28. APC abilitato ma Apache continua ad aprire i file?
- 29. Heap continua ad aumentare in Google Map API V2
- 30. Visual Studio continua ad aggiungere proprietà al mio csproj. Perché?
Ciao, hai trovato qualche soluzione per questo? –
No, ma non chiamare 'removeEventListener' e immagino che dovrebbe funzionare per te! –
Ok. Vuoi dire che ChildEventListener funzionerà sempre in background thread anche l'app è kill O dobbiamo fare tutto questo in servizio? –