A
Andro-medanebel
Neues Mitglied
- 0
Mein Grafikaufbau und meine Programmlogik befindet sich
in onSizeChanged (erst in onSizeChanged sind Breite und
Höhe bekannnt und diese lese ich aus).
Beim Drehen des Displays wird onSizeChanged aufgerufen
und MeinGanzesProgramm() erneut aufgerufen,
was einem Neustart und damit auch Neuaufbau der Grafik
entspricht, was auch so gewollt ist.
Zusätzlich soll mein Programm eine Menü-Option
"Neustart" bekommen, wo ich dann auch
MeinGanzesProgramm() aufrufen will.
Allerdings frage ich mich, ob der Neustart durch Rekursion
problematisch ist, da sich evtl. ein Stapel von Rücksprungadressen
aufbaut und es bei sehr vielen rekursiven Aufrufen ein Stapelüberlauf
geben könnte.
Ist meine Sorge berechtigt?
Wenn ja:
Ist es möglich, die letzte Rücksprungadresse zu löschen,
bevor MeinGanzesProgramm() erneut aufgerufen wird,
so dass kein Stapel von Rücksprungadressen entsteht?
in onSizeChanged (erst in onSizeChanged sind Breite und
Höhe bekannnt und diese lese ich aus).
Code:
@Override
protected void onSizeChanged(int w, int h, int ow, int oh)
{
MeinGanzesProgramm();
}
void MeinGanzesProgramm()
{
...
if (neustart==true) {MeinGanzesProgramm();}
}
und MeinGanzesProgramm() erneut aufgerufen,
was einem Neustart und damit auch Neuaufbau der Grafik
entspricht, was auch so gewollt ist.
Zusätzlich soll mein Programm eine Menü-Option
"Neustart" bekommen, wo ich dann auch
MeinGanzesProgramm() aufrufen will.
Allerdings frage ich mich, ob der Neustart durch Rekursion
problematisch ist, da sich evtl. ein Stapel von Rücksprungadressen
aufbaut und es bei sehr vielen rekursiven Aufrufen ein Stapelüberlauf
geben könnte.
Ist meine Sorge berechtigt?
Wenn ja:
Ist es möglich, die letzte Rücksprungadresse zu löschen,
bevor MeinGanzesProgramm() erneut aufgerufen wird,
so dass kein Stapel von Rücksprungadressen entsteht?