如何在android后台服务中监听firebase事件?

Posted

技术标签:

【中文标题】如何在android后台服务中监听firebase事件?【英文标题】:How to listen for firebase events in android background service? 【发布时间】:2017-07-26 00:01:35 【问题描述】:

尝试在后台服务中侦听 Firebase 事件。请在下面找到代码sn-p,

 @Override
 public int onStartCommand(Intent intent, int flags, int startId) 

   ValueEventListener postListener = new ValueEventListener() 
     @Override
     public void onDataChange(DataSnapshot dataSnapshot)            
       Post post = dataSnapshot.getValue(Post.class);        
     

     @Override
     public void onCancelled(DatabaseError databaseError)         
     
   ;
   mPostReference.addValueEventListener(postListener);

   return START_STICKY;
 

onDataChange() 方法一直持续到我的 Activity 还活着,一旦 Activity 退出,该方法就不会被调用。

请大家帮忙。

【问题讨论】:

您究竟想通过使用服务来完成什么?为什么不直接在使用数据的 Activity 中设置监听器? 我想在后台同步数据而不打开活动 【参考方案1】:

在您的清单中,确保 android:stopWithTask 未设置为 true。要么将其设置为false,要么完全忽略它,因为它默认为false。这样,Service 将与 Activity 的生命周期无关。您的清单应如下所示:

 <service
    android:name=".your_package_here.your_service_class_here"
    android:enabled="true"
    android:stopWithTask="false"/>

【讨论】:

以上是关于如何在android后台服务中监听firebase事件?的主要内容,如果未能解决你的问题,请参考以下文章

FileObserver 在后台监听,Android O

如何在后台监听firebase实时数据库更新事件并使用颤振自动启动应用程序(如Messenger中的调用功能)?

如何在 Android 应用程序后台监听音量键事件?

需要适用于 Android 和 IOS 的 React Native OneSignal 后台监听器

如何在不监听事件的情况下从 firebase 数据库中检索数据 [重复]

android 如何实现后台时用通知栏显示有新的消息,当在前台时不显示通知