Wie in OnDestroy() reagieren ?

  • 7 Antworten
  • Letztes Antwortdatum
M

maksimilian

Ambitioniertes Mitglied
0
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
 
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.
 
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.
Beiträge automatisch zusammengeführt:

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:
Wenn die App abbricht dann poste mal das Error Log.
 
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.
 
Noch mal wie ist das error log.
Ohne log und eventuell Code wird es wohl keine Hilfe geben.
 
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.
 
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.
 
Zurück
Oben Unten