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

我正在使用Firebase创建一个小型聊天应用程序.我希望ChildEventListener继续监听firebase数据库位置,虽然我的应用程序在后台或已退出.目前我正在注册它,当我的应用程序使用finish()退出或关闭时,之后我的所有ChildEventListener方法都没有被调用,如onChildAdded或onChildChanged,虽然我没有调用removeEventListener.I希望ChildEventListener始终在后台运行.无论如何这样做?

解决方法

使用服务来监听您的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;
       }

  }

在Manifest中注册您的服务

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

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

相关文章

AdvserView.java package com.earen.viewflipper; import an...
ImageView的scaleType的属性有好几种,分别是matrix(默认)...
文章浏览阅读8.8k次,点赞9次,收藏20次。本文操作环境:win1...
文章浏览阅读1.2w次,点赞15次,收藏69次。实现目的:由main...
文章浏览阅读3.8w次。前言:最近在找Android上的全局代理软件...
文章浏览阅读2.5w次,点赞17次,收藏6次。创建项目后,运行项...