2017-05-16 2 views
0

Ich versuche, die Anzahl der neuen Objekte, die in meiner Datenbank in Echtzeit erscheinen, mit dieser Bibliothek anzuzeigen: https://github.com/parse-community/ParseLiveQuery-Android.Inkrementieren Sie die Liste mit Parse LiveQuery (Android)?

Ich lausche auf neue Objekte, die in meiner Klasse Benachrichtigungen angezeigt werden. Wie würde ich diesen Wert in meinem StringHolder unterhalb jedes Mal erhöhen, wenn eine neue Benachrichtigung erstellt wird? Ob die Benutzeroberfläche aktualisiert wird, ist eine andere Geschichte, nehme ich an. Aber kann ich diese Liste zumindest in Echtzeit erhöhen?

ParseLiveQueryClient parseLiveQueryClient = ParseLiveQueryClient.Factory.getClient(); 
ParseQuery <ParseObject> parseQuery = ParseQuery.getQuery(ParseConstants.CLASS_NOTIFICATIONS); 
parseQuery.whereEqualTo(ParseConstants.KEY_READ_STATE, false); 
SubscriptionHandling <ParseObject> subscriptionHandling = parseLiveQueryClient.subscribe(parseQuery); 
subscriptionHandling.handleEvents(new SubscriptionHandling.HandleEventsCallback <ParseObject>() { 
@Override 
public void onEvents(ParseQuery <ParseObject> query, SubscriptionHandling.Event event, ParseObject object) { 
    // HANDLING all events 
    List<ParseObject> newNotifications = new ArrayList<>(); 
    newNotifications.add(object); 
    Log.w(getLocalClassName(), "New notification found! " + object.toString()); 
    result.updateBadge(5, new StringHolder(newNotifications.size() + "")); 
} 
}); 

Antwort

1

Ich glaube, Sie deklarieren die Variable newNotifications jedes Mal, wenn ein onEvent gemacht wird. Versuchen Sie, diese Zeile in einen gemeinsamen Kontext wie und Aktivität oder Singleton zu setzen:

List<ParseObject> newNotifications = new ArrayList<>();