Android Java Thread schließt sich beim wechsel des Layouts?

...komplette Frage anzeigen

1 Antwort

Das solltest Du nicht so programmieren

die while(true) - Schleife erzeugt in rasanter Folge neue Runnables für den UI-Thread - auch wenn sich am Status gar nichts geändert hat

Also auf jeden Fall den vorherigen Status speichern und nur wenn sich der aktuelle Status vom vorherigen unterscheidet runOnUIThread() aufrufen

Das ganz ist aber noch aus einem anderen Grund tückisch

die Variablen

b_rel, rel und b_dir verweisen ja auf irgendwelche Views einer Activity.
Angenommen der User dreht sein Device von Hochformat in Querformat dann startet Android die Activity aber neu und erstellt auch neue Views gemäß dem Layout

Dein Hintergrund-Thread bekommt das aber nicht von alleine mit und die Variablen 

b_rel, rel und b_dir verweisen immer noch auf die alten Views - die aber gar nicht mehr auf dem Display vorhanden sind.

Dadurch sieht man zum einen die Änderungen gar nicht und zum anderen kann Android die alte Activity auch nicht aus dem Speicher löschen weil ja immer noch Verweise auf Views der alten Activity vorhanden sind.

Und je nachdem ob der Hintergrundthread von dieser Activity aus gestartet wird erzeugt die neue Activity dann einen weiteren Hintergrundthread - wodurch dann zwei davon im Hintergrund laufen.....

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von YellowEagle
26.05.2016, 15:59

Aha :D Und wie lässt sich das lösen? Danke.

0

Was möchtest Du wissen?