Fragen zum Activity Lifecycle

M

maksimilian

Ambitioniertes Mitglied
0
Hallo Ihr,
ich möchte vorausschicken, dass mir dieser Artikel bekannt ist. Nun meine Fragen:

1. Ich stelle beim Testen einer App mit Android Studio den (seltenen Fall) fest, dass die onCreate-Methode einer MainActivity Klasse (in welcher 3 Threads laufen) während eines Lifecycles ein zweites Mal aufgerufen wurde. Wie kann das geschehen ?

2. Sollte man mit der onDestroy-Methode Aufräumarbeiten durchführen ? Wenn ja, welche ?

3. Sollten weitere Callbacks der Activity Klasse und wofür genutzt werden ?

maksimilian
 
Hallo
Zu 1 zb Wenn du das Handy drehst wird die onCreate aufgerufen.
Dann vor dem Start des Threads prüfen ob er noch läuft.

2. onDestroy wird vom System aufgerufen wenn die Activity beendet wird. Also wenn du zb finish() machst.
Ein noch laufender Thread villeicht beenden.

3. Vileicht onRestoreInstanceState /
onSaveInstanceState
Thema drehen des Handys.

PS du sagst du kennst den von dir genannten Artikel.
 
Zuletzt bearbeitet:
Hallo jogimuc,
danke für die schnelle Reaktion. Grundsätzlich: ich habe mich noch nicht darum gekümmert, wie eine App auf äußere Einflüsse reagiert, wie Drehen des Handys, Verdrängen der App in den Hintergrund. Ich bin erst mal froh, mit der Entwicklung meiner ersten App den aktuellen Status erreicht zu haben.

Zu 1. Wie soll ich beim Start des MainThreads überprüfen, ob er noch läuft ? Mit savedInstanceState ? Wie soll reagiert werden, wenn er bereits läuft ?

Zu 2.
Meiner Beobachtung nach, wird nach Aufruf von onDestroy die App noch nicht beendet. onDestroy wird nicht aufgerufen , wenn bei Erreichen des Stop-Zustands das in der Titelzeile des App-Fensters erscheinende Kreuz zum Beenden der App angetippt wird.

Zu3.
Da ist ein Missverständnis entstanden. Ich möchte fragen, ob in der Activity nach onCreate auch die anderen Methoden verwendet werden sollten und wenn ja, wofür.
 
1. Prüfen ob der Mainthread läuft brauchst du nicht. Es ist und war die Rede von den drei Thread die du wie du geschrieben hast in der onCreate startest. Wenn nun beim Handy drehen die onCreate wider ausgeführt wird könnten deine Threads noch laufen.


Dann schaue mal in die Doku, ob jetzt Android oder klassisches Java welche zustände ein Thread haben kann und welche Test Methoden es gibt.
Vileicht isAlive.

2. Wann und wie onDestroy aufgerufen wird steht auch in der von dir verlinkten Doku.
Laut dem Diagramm wird die am Ende nach onStop aufgerufen. Aber auch wenn das Handy gedreht wird. Steht im Text.

Was nach dem klicken eines Button passiert entscheidest du in deiner Listener Methode. Bei einem finish wird es ausgeführt.

3. Kommt immer darauf an was du machen willst? Kann mann nicht pauschal beantworten.
Wann und in welcher Reihenfolge sie aufgerufen werden ist ja aus dem Diagramm und dem Text ersichtlich.
 
Zuletzt bearbeitet:
Danke für die Links. Ich hatte mir früher schon mal überlegt, den Android Kurs zu erwerben.
 

Ähnliche Themen

M
Antworten
2
Aufrufe
631
Mozart40
M
wernho
Antworten
11
Aufrufe
692
wernho
wernho
M
  • maksimilian
Antworten
15
Aufrufe
1.701
maksimilian
M
Zurück
Oben Unten