2016-07-29 19 views
0

Ich brauche meine Anwendung, um zwei Netzwerkanrufe zu tätigen, wenn die App zum ersten Mal gestartet wird, wenn sie beendet und erneut gestartet wird es wurde im Hintergrund platziert und dann zurückgegeben.Der beste Ort, um eine Aktion hinzuzufügen, wenn die Anwendung startet oder zum Forground zurückkehrt.

Ich weiß, ich kann es in meine "MainActivity" onCreate/onResume setzen. Ich habe eine Klasse, die Anwendung erweitert, wo ich Protokollierung und Absturzberichterstattung initialisiere, aber ich habe festgestellt, dass es keine onResume-Methode gibt, die meines Wissens die Methode ist, die aufgerufen wird, wenn die Anwendung aus dem Hintergrund kommt.

Wo wäre der beste Ort, um diese zwei Netzwerkanrufe zu machen, um bestimmte Aspekte in meiner App zu aktualisieren, wenn die App zum ersten Mal gestartet wird, wenn sie beendet wird, wenn sie aus dem Hintergrund kommt.

FYI. Der Grund, warum ich es nicht in meiner "MainActivity" sehen möchte, ist, dass ich diese Netzwerkanrufe nicht aufrufen möchte, wenn ich von einem anderen Bildschirm in der App zur MainActivity zurückkehre, nur wenn der Benutzer zur App zurückkehrt ?

Dank

Antwort

1

Der Anwendungsfall des Aufrufs, wenn die App kehrt von Hintergrund ist durch in Ihrer Anwendungsklasse Aktivität Life Cycle Methoden der Umsetzung:

public class myApp extends Application implements Application.ActivityLifecycleCallbacks { 
    ... 
    } 

In diesem Fall müssen Sie sicherstellen, dass, wenn ein onPause() ist Eine entsprechende onResume() sollte auch aufgerufen werden (dh normale Bildschirmumschaltung). Wenn nicht, wissen Sie, dass Ihre App jetzt im Hintergrund ist. Der nächste Callback zu onResume() sollte bedeuten, dass es wieder in den Vordergrund gerückt ist und Sie Ihren Netzwerkanruf tätigen können.

+0

sind Ihnen irgendwelche Nachteile bekannt? – x10sion

+0

Ich habe es in einer der internen Anwendungen verwendet. Es hat wie erwartet funktioniert. – Shaishav

+0

Sie können die 'onCreated()' der Anwendungsklasse verwenden, um einen Netzwerkanruf zu tätigen, wenn die App beendet und erneut geöffnet wird (wird auch den ersten Anwendungsfall abdecken). Ich denke, das deckt alles ab, was du verwendest? – Shaishav