2017-03-06 2 views
5

Versucht, auf Firebase-Ereignisse im Hintergrund zu warten. Bitte finden Codeausschnitt unten,Wie für Firebase-Ereignisse in Android-Hintergrunddienst zu hören?

@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() -Methode meine Aktivität wird immer, bis lebt, sobald Aktivität beendet ist, wird die Methode nicht aufgerufen zu werden.

Jeder bitte helfen.

+0

Was genau versuchen Sie mit einem Dienst zu erreichen? Warum würden Sie den Listener nicht direkt in der Aktivität einrichten, die die Daten verwendet? –

+0

Ich möchte Daten im Hintergrund synchronisieren, ohne die Aktivität zu öffnen –

Antwort

0

Stellen Sie in Ihrem Manifest sicher, dass android:stopWithTask nicht auf true festgelegt ist. Entweder auf false setzen oder ganz weglassen, da standardmäßig false angezeigt wird. Auf diese Weise ist der Service nicht mit dem Lebenszyklus von Activity korreliert. Ihr Manifest sollte etwa so aussehen:

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