Ich entwickle eine App mit RoboSpice-Bibliothek zum Aufruf von REST-APIs. Alles funktioniert gut mit der Bibliothek außer einer Sache. Ich benutze kein in RoboSpice verfügbares Caching und so werden alle Anfragen ohne Cache gestellt. Wenn jetzt eine Anfrage läuft und der Benutzer die Home-Taste drückt, wird onStop() aufgerufen, wo der Stuff() des Spice-Managers aufgerufen wird, der alle Anfragen-Listener für die Benachrichtigung auflistet. Wenn die App wieder im Vordergrund angezeigt wird, tritt keine UI-Aktualisierung auf, da die Listener nicht benachrichtigt wurden.Die Robospice-Anfrage endet nie, wenn die App im Hintergrund läuft und dann zum Vordergrund kommt?
Ich möchte keinen Cache verwenden, den Robospice anbietet. Gibt es eine andere Möglichkeit, die UI-Update-Benachrichtigungen ohne Cache zu erhalten?
Ich stimme zu, dass RS tut es aus einem Grund. Stellen Sie sich jedoch vor, dass eine Anfrage gestellt wurde und der Fortschrittsdialog angezeigt wird und der Benutzer die Home-Taste drückt. Der Aufruf von REST wird ordnungsgemäß ausgeführt. Wenn der Benutzer die App startet, wurde der Fortschrittsdialog nicht angezeigt, da die Benutzeroberfläche nicht aktualisiert wurde, da Listener nicht registriert wurden. Wie auch immer, es scheint, dass die Verwendung von Cache zur Zeit der einzige Weg mit RS ist. – mobiledev
Der andere Weg kann spiceManager.shouldStop() in onDestroy aufrufen und den spicemanager in onCreate() starten. Als onDestroy() ist der letzte Aufruf, den eine Aktivität erhält, wenn sie getötet wird. – mobiledev
@mobiledev, ich glaube nicht, dass die zweite Lösung besser ist. Service-Binding ist wirklich schwierig und der bevorzugte Ort ist, das Paar onStart/onStop zu verwenden. Möglicherweise möchten Sie die Anforderung von einem Dienst anstelle einer Aktivität ausführen. – Snicolas