2016-05-02 11 views
-1
senden

Ich möchte eine Menge von Benutzerereignissen im JSON-Format an meinen Server zu Analysezwecken in Android App senden. Wenn Sie so viele Ereignisse senden, indem Sie eine Post-Retrofit-Methode auslösen und auf einen Rückruf warten, verlangsamt sich die Anwendung. Ich mache Anrufe asynchron, aber die App wird immer langsamer.Der beste Weg, um viele Ereignisse an den Server in Android

Gibt es eine bessere Möglichkeit, diese Anfragen zu senden? Eine optimierte Möglichkeit, Daten zu senden. Vielleicht nicht einmal nach einer Rückrufantwort suchen. Ist das mit Retrofit 2.0 oder Okhttp möglich?

+0

Sie würden sowohl von Ihren Benutzern als auch von Ihrem Serveradministrator verflucht sein ... –

+0

Vielleicht können Sie einen Websocket ausprobieren. –

+0

Das Hinzufügen einer Bucket-Logik hat dieses Problem behoben. –

Antwort

0

Sie können in Betracht ziehen, Daten in verwaltbare "Datenbuckets" auf dem Mobiltelefon zu cachen (die mindestens eine Standardgröße haben könnten, sagt (mindestens) 50/100/200 Datensätze oder was auch immer sinnvoll) vor dem Abfeuern eines Servers nach dem Ereignis

Auf diese Weise vermeiden Sie mehrere Anrufe und belasten Ihren Server/Handy.

Okhttp oder eine andere Bibliothek unterstützt Sie möglicherweise nicht direkt bei der Implementierung dieser Logik. Sie könnten jedoch Ihre eigene Logik schreiben und diese Bibliotheken verwenden, die Ihre Anrufe und die Verwaltung von Anruffehlern vereinfachen.

+1

Danke das macht Sinn. Ich habe eine ArrayList erstellt, um alle Ereignisdaten darin zu speichern, und eine statische Zählervariable, um zu verfolgen, wie viele Ereignisse ich hinzugefügt habe. Sobald ich eine Schwelle überschreite, schiebe ich die ArrayList vi Retrofit, die es in eine gültige JSON-Daten konvertiert. –

Verwandte Themen