android – Firebase:虽然app退出,但仍会继续监听ChildEventListener

前端之家收集整理的这篇文章主要介绍了android – Firebase:虽然app退出,但仍会继续监听ChildEventListener前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用Firebase创建一个小型聊天应用程序.我希望ChildEventListener继续监听firebase数据库位置,虽然我的应用程序在后台或已退出.目前我正在注册它,当我的应用程序使用finish()退出关闭时,之后我的所有ChildEventListener方法都没有被调用,如onChildAdded或onChildChanged,虽然我没有调用removeEventListener.I希望ChildEventListener始终在后台运行.无论如何这样做?

解决方法

使用服务来监听您的ChildEventListener
  1. public class ChildEventListener extends Service {
  2. @Override
  3. public IBinder onBind(Intent intent) {
  4. return null;
  5. }
  6. @Override
  7. public int onStartCommand(Intent intent,int flags,int startId) {
  8. //Adding a childevent listener to firebase
  9. Firebase myFirebaseRef = new Firebase("FirebaseURL");
  10. myFirebaseRef.child("FIREBASE_LOCATION").addValueEventListener(new ValueEventListener() {
  11.  
  12. @Override
  13. public void onDataChange(DataSnapshot snapshot) {
  14. //Do something using DataSnapshot say call Notification
  15. }
  16.  
  17. @Override
  18. public void onCancelled(FirebaseError error) {
  19. Log.e("The read Failed: ",error.getMessage());
  20. }
  21. });
  22.  
  23. }
  24.  
  25. @Override
  26. public void onCancelled(FirebaseError firebaseError) {
  27. Log.e("The read Failed: ",firebaseError.getMessage());
  28. }
  29. });
  30.  
  31. return START_STICKY;
  32. }
  33.  
  34. }

在Manifest中注册您的服务

  1. <service android:name=".ChildEventListener "/>

启动您的服务并收听childEvents,在何处/何时启动您的服务取决于您的聊天应用程序设计

猜你在找的Android相关文章