Wie in OnDestroy() reagieren ?

  • 7 Antworten
  • Neuester Beitrag
Diskutiere Wie in OnDestroy() reagieren ? im Android App Entwicklung im Bereich Betriebssysteme & Apps.
M

maksimilian

Ambitioniertes Mitglied
Hallo Ihr,
wenn bei einer App das Drehen des Bildschirms zugelassen wird, erfolgt der Aufruf der OnDestroy-Methode von MainActivity. Wenn in dieser nur super.onDestroy() codiert ist, wird die App angehalten, wobei sie in den Hintergrund geht und es erscheint die Auffordeung zum Neustart. Was muss in der Methode codiert werden, um dieses Verhalten zu vermeiden, d.h. die App beim Drehen des Handys im Vordergrund bleibt.

maksimilian
 
J

jogimuc

Stammgast
Hallo mal eines zum Verständnis.
Ob du die Methode überschreibtst oder nicht sie wird immer ausgeführt.

Das Neustarten der Activity beim drehen kannst du nicht verhindern. Egal ob du da Methoden überschreibtst oder nicht.
 
M

maksimilian

Ambitioniertes Mitglied
jogimuc schrieb:
Das Neustarten der Activity beim drehen kannst du nicht verhindern. Egal ob du da Methoden überschreibtst oder nicht.
Das ist ja nicht das Problem. Ich möchte nur herausfinden, welche Maßnahmen ergriffen werden müssen, damit bei Änderung der Konfiguration (Drehen des Handys)
1. die App nicht abstürzt
2. die App im Vordergrund bleibt

Bei mir wechselt die App beim Drehen von Stop nach Destroy statt Create.. Warum, muss ich herausfinden.
Außerdem gelingt es mir noch nicht, mit onSaveInstanceState() Daten zu sichern, die ab dem zweiten Create wieder hergestellt werden sollen. Die Callback-Methode onSaveInstanceState wird angeblich aufgerufen, wenn eine Orientierungsänderung beim Handy erfolgt.
Beitrag automatisch zusammengefügt:

Ergänzend:
Beim Drehen des Handy werden folgende Callbacks aufgerufen
onPause
onStop
onDestroy
onCreate
onStart
onResume
onPause
onStop
onDestroy

Danach ist die App gestorben.
 
Zuletzt bearbeitet:
J

jogimuc

Stammgast
Wenn die App abbricht dann poste mal das Error Log.
 
M

maksimilian

Ambitioniertes Mitglied
Immerhin schon mal etwas:
Mit folgendem Eintrag in die Manifest-Datei akzeptiert die App das Drehen des Handys
Code:
<activity android:name=".MainActivity"
    android:configChanges="orientation|screenSize|screenLayout|keyboardHidden">
</activity>
Nach onCreate, onStart und onResume werden beim laufenden Drehen des Handys keine weiteren Callback-Methode aufgerufen und die App bleibt im Vordergrund.

Jetzt gilt es herauszufinden, wo in der Codierung und wie die GUI an eine neue Orientierung angepasst werden kann.
 
J

jogimuc

Stammgast
Noch mal wie ist das error log.
Ohne log und eventuell Code wird es wohl keine Hilfe geben.
 
D

deek

Stammgast
maksimilian schrieb:
Immerhin schon mal etwas:
Mit folgendem Eintrag in die Manifest-Datei akzeptiert die App das Drehen des Handys
Code:
<activity android:name=".MainActivity"
    android:configChanges="orientation|screenSize|screenLayout|keyboardHidden">
</activity>
Nach onCreate, onStart und onResume werden beim laufenden Drehen des Handys keine weiteren Callback-Methode aufgerufen und die App bleibt im Vordergrund.

Jetzt gilt es herauszufinden, wo in der Codierung und wie die GUI an eine neue Orientierung angepasst werden kann.
Lass das mal sein, wenn du nicht weißt was du tust. Es ist zwar nervig mit den destroy/create Kaskaden beim Drehen, aber der bessere Weg.
jogimuc hat Recht, das Problem liegt irgendwo im restlichen Code und es sollte eigentlich einen Fehler im Logcat geben.
 
M

maksimilian

Ambitioniertes Mitglied
Da ich laufend dazulerne hat sich die Situation etwas geändert. In der App tritt kein Fehler mehr auf. Es geht jetzt "nur" darum, Orientierungsänderungen zu behandeln. Dazu mache ich einen neuen Thread auf und bitte, hier nicht mehr zu posten.