Führt eine Methode aus, nachdem eine Aktivität für den Benutzer sichtbar ist

7

Ich habe eine Aktivität, die zu viele Benutzeroberflächensteuerelemente enthält. Ich möchte eine Methode ausführen, nachdem die Aktivität sichtbar gemacht wurde.

Ein Beispiel, das ich versucht habe:

%Vor%

Aber im obigen Beispiel wird die Nachricht angezeigt, bevor die Aktivität sichtbar ist.

Gibt es eine Möglichkeit, herauszufinden, ob die Aktivität vollständig sichtbar ist?

    
Riskhan 11.10.2013, 07:02
quelle

5 Antworten

16

Bewegen Sie Ihren Code zu onResume

%Vor%

Überprüfen Sie den Aktivitätslebenszyklus

Ссылка

%Vor%

Wird nach onRestoreInstanceState (Bundle), onRestart () oder onPause () aufgerufen, damit Ihre Aktivität mit dem Benutzer interagiert. Dies ist ein guter Ort, um Animationen zu starten, exklusive Geräte (wie die Kamera) usw. zu öffnen.

Beachten Sie, dass onResume nicht der beste Indikator dafür ist, dass Ihre Aktivität für den Benutzer sichtbar ist. Ein Systemfenster wie die Tastensperre kann sich vorne befinden. Verwenden Sie onWindowFocusChanged (boolean), um sicher zu sein, dass Ihre Aktivität für den Benutzer sichtbar ist (z. B. um ein Spiel fortzusetzen).

Abgeleitete Klassen müssen die Implementierung dieser Methode durch die Superklasse aufrufen. Wenn dies nicht der Fall ist, wird eine Ausnahme ausgelöst.

    
Raghunandan 11.10.2013, 07:06
quelle
5

Verschieben Sie den Code auf onResume .

Das System ruft diese Methode jedes Mal auf, wenn Ihre Aktivität in den Vordergrund tritt, auch wenn sie zum ersten Mal erstellt wird. Details zu Aktivieren und Fortsetzen einer Aktivität

%Vor%

Lesen Sie mehr unter Android-Aktivität Lebenszyklus - was sind all diese Methoden für?

    
Pankaj Kumar 11.10.2013 07:05
quelle
2

rufen Sie MyMethod() in onResume() der Aktivität

auf

Laut Dokumentation onResume() Wird aufgerufen, wenn die Aktivität mit dem Benutzer interagiert. An diesem Punkt befindet sich Ihre Aktivität im oberen Bereich des Aktivitätsstapels, wobei Benutzereingaben vorgenommen werden.

%Vor%     
Mukesh Kumar 11.10.2013 07:06
quelle
1

Es gibt keinen echten Callback, der aufgerufen wird, genau zu diesem Zeitpunkt ist die Aktivität sichtbar. Aber wie Sie im angehängten Bild sehen können, wird die Methode onResume() gerade aufgerufen, wenn Activity sichtbar sein soll.

Sehen Sie sich auch den Activity Lifecycle und die Dokumentation HIER

an

Also sollte Ihre Methode so heißen:

%Vor%

Bild

    
A.S. 11.10.2013 07:08
quelle
1
%Vor%     
Haresh Chhelana 11.10.2013 07:15
quelle

Tags und Links