Kann mir jemand ein Beispiel geben, das onResume()
in Android verwendet wird?
Wenn ich die Aktivität am Ende der Ausführung einer anderen neu starten möchte, welche Methode wird ausgeführt - onCreate()
oder onResume()
?
Und wenn ich Daten aktualisieren möchte, wie füge ich sie ein? onResume()?
Antworten:
Bei jeder neu gestarteten Aktivität wird zuerst die Methode onResume () ausgeführt.
Gehen Sie folgendermaßen vor, um diese Methode zu verwenden:
@Override public void onResume(){ super.onResume(); // put your code here... }
quelle
Beim Neustart der App wird aufgerufen
OnCreate()
.Wenn Sie die App fortsetzen, wenn sie angehalten ist, wird sie aufgerufen
OnResume()
. In den offiziellen Dokumenten unter https://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle finden Sie hier ein Diagramm des Aktivitätslebenszyklus.quelle
Der beste Weg, dies zu verstehen, besteht darin, alle LifeCycle-Methoden in Ihrer Aktivität überschreiben zu lassen und einen Haltepunkt (wenn Sie den Emulator einchecken) oder ein Protokoll in jeder dieser Methoden zu platzieren. Sie erfahren, welcher wann angerufen wird.
Genau wie ein Spoiler
onCreate()
wird er zuerst aufgerufen, wenn Sie die Aktivität angehalten haben, indem Sie entweder zum Startbildschirm gegangen sind oder eine andere Aktivität gestartet habenonPause()
. Wenn das Betriebssystem die Aktivität in der Zwischenzeit zerstört,onDestroy()
wird es aufgerufen. Wenn Sie die App fortsetzen und die App bereits zerstört wurde,onCreate()
wird sie angerufen oder sieonResume()
wird angerufen.Edit: Ich habe vergessen
onStop()
, es wird vorher aufgerufenonDestroy()
.Wenn Sie die von mir erwähnte Übung machen, haben Sie ein besseres Verständnis.
quelle
Die meisten der vorherigen Antworten machen einen guten Job und erklären, wie, warum und wann sie verwendet werden sollen,
onResume()
aber ich möchte etwas über die Neuerstellung Ihrer hinzufügenActivity
.Die Antwort lautet
onCreate()
: Wenn Sie sich jedoch für eine Neuerstellung entscheiden, sollten Sie sich fragen, wie viel von denActivity
Neuerstellungen erforderlich ist. Wenn es Daten in einem Adapter, sagen für eine Liste, dann können Sie rufennotifyDataChanged()
auf dieadapter
die neu zu besiedelnadapter
und nicht alles neu zu ziehen haben.Auch, wenn Sie nur bestimmte aktualisieren müssen
views
aber nicht alle , dann kann es effizienter sein, rufen Sieinvalidate()
an demview
(n) , dass Bedarf aktualisiert. Dadurch werden nur diese neu gezeichnet,views
und möglicherweise kann Ihre Anwendung reibungsloser ausgeführt werden. Ich hoffe das kann dir helfen.quelle
onResume()
ist eine der Methoden, die während des gesamten Aktivitätslebenszyklus aufgerufen werden .onResume()
ist das Gegenstück, zuonPause()
dem jedes Mal aufgerufen wird, wenn eine Aktivität nicht sichtbar ist, z. B. wenn Sie eine neue Aktivität starten, die sie verbirgt.onResume()
wird aufgerufen, wenn die ausgeblendete Aktivität wieder auf dem Bildschirm angezeigt wird.Ihre Frage fragt, mit welcher Methode eine Aktivität neu gestartet wird.
onCreate()
wird aufgerufen, wenn die Aktivität zum ersten Mal erstellt wird. In der Praxis bleiben die meisten Aktivitäten im Hintergrund durch eine Reihe vononPause()
undonResume()
Aufrufen bestehen. Eine Aktivität wird nur dann wirklich "neu gestartet",onRestart()
wenn sie zuerst durch Aufrufen vollständig gestopptonStop()
und dann wieder zum Leben erweckt wird. Wenn Sie also nicht tatsächlich AktivitätenonStop()
damit beenden, werden Sie diese wahrscheinlich verwendenonResume()
.Lesen Sie das Android-Dokument im obigen Link, um ein besseres Verständnis der Beziehung zwischen den verschiedenen Lifestyle-Methoden zu erhalten. Unabhängig davon, welche Lebenszyklusmethode Sie am Ende verwenden, ist das allgemeine Format dieselbe. Sie müssen die Standardmethode überschreiben und Ihren Code, dh was die Aktivität zu diesem Zeitpunkt tun soll, in den kommentierten Abschnitt aufnehmen.
@Override public void onResume(){ //will be executed onResume }
quelle
Überprüfen Sie die Android Activity Lifecycle-Referenz erneut. Es gibt ein schönes Bild und die Tabelle zeigt, welche Methoden aufgerufen werden. Referenz Link Google
https://developer.android.com/reference/android/app/Activity.html
quelle
KOTLIN
Bei jeder neu gestarteten Aktivität wird zuerst die Methode onResume () ausgeführt.
Gehen Sie folgendermaßen vor, um diese Methode zu verwenden:
override fun onResume() { super.onResume() // your code here }
quelle
Nach dem Start einer Aktivität wird ein Neustart (onRestart () vor onStart ()) oder eine Pause (onPause ()) bei onResume () durchgeführt. Wenn sich die Aktivität im Status von onResume () befindet, kann sie vom App-Benutzer verwendet werden.
Ich habe den Aktivitätslebenszyklus ein wenig untersucht und hier ist mein Verständnis dieses Themas: Wenn Sie die Aktivität (A) am Ende der Ausführung einer anderen Aktivität neu starten möchten, kann es verschiedene Fälle geben.
Die andere Aktivität (B) wurde angehalten und / oder gestoppt oder zerstört, und die Aktivität A wurde möglicherweise angehalten (onPause ()). In diesem Fall ruft Aktivität A onResume () auf.
Die Aktivität B wurde angehalten und / oder gestoppt oder zerstört, die Aktivität A wurde möglicherweise aufgrund eines Speichers gestoppt (onStop ()). In diesem Fall ruft Aktivität A zuerst onRestart (), dann onStart () und dann onResume auf ()
Die Aktivität B wurde angehalten und / oder gestoppt oder zerstört, die Aktivität A wurde zerstört, der Programmierer kann onStart () manuell aufrufen, um die Aktivität zuerst zu starten, dann onResume (), da die Aktivität den Status "Zerstört" aufweist, wenn sich eine Aktivität im Status "Zerstört" befindet nicht gestartet, und dies geschieht, bevor die Aktivität vollständig entfernt wurde. Wenn die Aktivität entfernt wird, muss die Aktivität erneut erstellt werden. Manuelles Aufrufen von onStart () Ich denke, es liegt daran, dass onStart () nach onCreate () aufgerufen wird, wenn die Aktivität nicht gestartet und erstellt wird.
Wenn Sie Daten aktualisieren möchten, erstellen Sie eine Datenaktualisierungsfunktion und fügen Sie die Funktion in onResume () ein. Oder fügen Sie eine loadData-Funktion in onResume () ein.
Es ist besser, den Lebenszyklus mithilfe des Aktivitätslebenszyklusdiagramms zu verstehen.
quelle