2013-03-27 23 views
45

Kann mir jemand ein Beispiel geben, das onResume() in Android verwendet?Wie benutzt man onResume()?

Auch, wenn ich die Aktivität am Ende der Ausführung eines anderen neu starten möchte, welche Methode ausgeführt wird - onCreate() oder onResume()?

Und wenn ich Daten aktualisieren möchten, wie stelle ich es in onResume()?

+0

onResume() wird aufgerufen, wenn Sie von einem Anruf oder etwas anderem zurück zur Aktivität navigieren. Sie können die onResume-Methode ähnlich wie onCreate() überschreiben und die Aufgabe ausführen. –

+0

[This] (http://www.herongyang.com/Android/Activity-onCreate-and-Callback-Methods.html) kann Ihnen helfen, den Lebenszyklus von und Android-App mehr zu verstehen. – TronicZomB

+2

Die Reihenfolge, in der diese Methoden aufgerufen werden, wird in der Android-Entwicklerdokumentation erläutert: http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle – Michael

Antwort

39

die App neu starten wird OnCreate() nennen.

Wenn die App fortgesetzt wird, wenn sie angehalten wird, wird OnResume() aufgerufen. Aus den offiziellen Dokumenten unter https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle ist hier ein Diagramm des Aktivitätslebenszyklus.

the Android activity lifecycle, from https://developer.android.com/images/activity_lifecycle.png on https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle

+1

Verwenden Sie den Hyperlink, um Links bereitzustellen. –

+0

der Link gibt mir manchmal Probleme. Ich weiß nicht warum –

+2

Ich empfehle nicht, manuell eine der Methoden, die Teil des Activity Lifecycle sind :) aufzurufen, die eine Menge Probleme verursachen können. – Cata

76

jede Aktivität, die neu gestartet hat seinen onResume() Verfahren zuerst ausgeführt.

diese Methode zu verwenden, dies zu tun:

@Override 
public void onResume(){ 
    super.onResume(); 
    // put your code here... 

} 
3

onResume() eine der Methoden im gesamten activity lifecycle genannt wird. onResume() ist das Gegenstück zu onPause(), das zu jeder Zeit aufgerufen wird, wenn eine Aktivität nicht sichtbar ist, z. wenn Sie eine neue Aktivität starten, die sie versteckt. onResume() wird aufgerufen, wenn die ausgeblendete Aktivität wieder auf dem Bildschirm angezeigt wird.

Sie werden gefragt, welche Methode zum Neustarten einer Aktivität verwendet wird. onCreate() wird aufgerufen, wenn die Aktivität zum ersten Mal erstellt wird. In der Praxis bestehen die meisten Aktivitäten im Hintergrund durch eine Reihe von Aufrufen onPause() und onResume(). Eine Aktivität wird nur dann wirklich von onRestart() "neu gestartet", wenn sie zuerst durch Aufruf von onStop() vollständig gestoppt und dann wieder zum Leben erweckt wird. Also, wenn Sie nicht wirklich Aktivitäten mit onStop() stoppen, ist es am meisten likley Sie werden onResume() verwenden.

Lesen Sie das Android Dokument in dem obigen Link, um ein besseres Verständnis der Beziehung zwischen den verschiedenen Lifestyle-Methoden zu bekommen. Unabhängig davon, welche Lebenszyklusmethode Sie verwenden, ist das allgemeine Format das gleiche. Sie müssen die Standardmethode außer Kraft setzen und Ihren Code, d. H. Was die Aktivität an diesem Punkt tun soll, in den kommentierten Abschnitt aufnehmen.

@Override 
public void onResume(){ 
//will be executed onResume 
} 
+0

Wird onResume() aufgerufen, wenn wir auf ein Objekt in der Ansicht klicken? –

+1

Das Klicken auf ein Element ruft nicht unbedingt onResume auf. Die onResume-Methode wird aufgerufen, wenn diese Ansicht entweder ausgeblendet und wiederhergestellt wird oder beim erstmaligen Laden, bevor sie vollständig erstellt wurde. – Rarw

23

Der beste Weg, um all LifeCycle Methoden in Ihrer Aktivität und platzieren einen Haltepunkt außer Kraft gesetzt zu haben, wäre zu verstehen oder einen Log von ihnen in jedem (wenn in Emulator-Kontrolle). Du wirst erfahren, welcher wann angerufen wird.

Nur als Spoiler wird onCreate() zuerst aufgerufen. Wenn Sie die Aktivität pausiert haben, indem Sie entweder zum Startbildschirm gehen oder eine andere Aktivität starten, wird onPause() aufgerufen. Wenn das OS in der Zwischenzeit die Aktivität zerstört, wird onDestroy() aufgerufen. Wenn Sie die App fortsetzen und die App bereits zerstört wurde, wird onCreate() aufgerufen, andernfalls wird onResume() aufgerufen.

Edit: Ich habe über onStop() vergessen, es wird vor onDestroy() aufgerufen.

Machen Sie die Übung, die ich erwähnt habe, und Sie werden ein besseres Verständnis haben.

+1

Ich habe schon lange nach solch einer detaillierten Erklärung gesucht, das hat mir wirklich geholfen, den perfekten App-Aktivitätszyklus zu erstellen. Vielen Dank. –

+0

Gern geschehen :-) – noob

+1

tolle Erklärung! +1 – powernit

7

Die meisten der vorherigen Antworten machen einen guten Job zu erklären, wie, warum und wann zu verwenden onResume(), aber ich möchte etwas hinzufügen über Ihre Activity neu erstellen.

Ich möchte wissen, ob ich die Aktivität am Ende des exectuion eines anderen neu gestartet werden soll, welche Methode ausgeführt wird onCreate() oder onResume()

Die Antwort ist onCreate() jedoch bei der Entscheidung, um es tatsächlich neu zu erstellen, sollten Sie sich fragen, wie viel der Activity muss neu erstellt werden. Wenn es sich um Daten in einem Adapter handelt, sagen wir für eine Liste, dann können Sie notifyDataChanged() auf dem adapter aufrufen, um das adapter neu zu bevölkern und müssen nicht alles neu zeichnen.

Auch wenn Sie nur bestimmte views aktualisieren müssen, aber nicht alle, dann kann es effizienter sein, invalidate() auf die view (s) zu rufen, die aktualisiert werden müssen. Dies wird nur die views neu zeichnen und möglicherweise Ihre Anwendung reibungsloser laufen lassen. Ich hoffe, das kann dir helfen.

+0

danke. Ich werde versuchen, notifyDataChanged() – Zizou

+0

verwenden Sie sind willkommen. Froh, dass ich helfen konnte. – codeMagic