2017-03-06 43 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"/> 
相關問題