我正在使用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,在何处/何时启动您的服务取决于您的聊天应用程序设计
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。