2017-03-06 47 views
5

试图在后台服务中收听Firebase事件。请从下面的代码片段,如何在android后台服务中侦听firebase事件?

@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()方法获得,直到我的活动是活的,一旦活动退出,该方法没有得到所谓的。

任何人都请帮忙。

+0

你试图用服务完成什么?为什么不直接在使用数据的活动中设置侦听器? –

+0

我想在不打开活动的情况下在后台同步数据 –

回答

0

在您的清单中,请确保android:stopWithTask未设置为true。要么将其设置为false,要么将其全部保留,因为它默认为false。这样,该服务将与活动的生命周期无关。你的清单看起来应该是这样的:

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