Hallo,
wieder mal habe ich, eigentlich mehr durch Zufall, ein einigermaßen überraschendes Verhalten von Android, auch gerade im Zusamenspiel mit Eclipse festgestellt.
In meiner App MusikZeit hatte ich einige globale Variablen noch oberhalb der onCreate() Methode deklariert und auch auf einen Wert gesetzt.
static boolean soll_auch_genres=false;
In der onDestroy() Methode habe ich dann den MediaPlayer gestoppt, wenn die App beendet wurde.
@Override
public void onDestroy()
{
super.onDestroy();
if (isFinishing())
{
if (myMediaPlayer!=null)
{
if (ist_am_spielen)
{
myMediaPlayer.stop();
myMediaPlayer.reset();
}
myMediaPlayer=null;
}
}
}
Alles anzeigen
Es funktionierte anscheinend alles, kein einziges Problem trat auf, wenn ich von Eclipse aus die AApp auf dem Smartphone startete, egal ob ich ein einer Einstellungsactivity die Einstellungen (ohne Änderungen im Quellcode) so änderte, dass bei einem erneutem Start der Wert von der App soll_auch_genres auf true gesetzt wurde. Wenn ich den Start das von Eclipse ausführte, auch ohne Quellcodeänderung, dann war immer noch alles ok.
Sobald ich jedoch nach einer entsprechden Änderung in der Einstellungsactivity die App direkt vom Smartphone aus startete, gab es immer einen Fehler. Nach einen abermaligen Start der App vom Smartphone aus lief dannn alles richtig!!
Da ich die Vermutung hatte, dass es irgendwie an meiner onDestroy() liegen könnte testete ich das mal aus mit verschiedenen Ausklammerungen.
@Override
public void onDestroy()
{
super.onDestroy();
if (isFinishing())
{
/* if (myMediaPlayer!=null)
{
if (ist_am_spielen)
{
myMediaPlayer.stop();
myMediaPlayer.reset();
}
myMediaPlayer=null;
}
*/
}
}
Alles anzeigen
Ergebnis: der gleiche Fehler!
@Override
public void onDestroy()
{
super.onDestroy();
/*
if (isFinishing())
{
if (myMediaPlayer!=null)
{
if (ist_am_spielen)
{
myMediaPlayer.stop();
myMediaPlayer.reset();
}
myMediaPlayer=null;
}
}
*/
}
Alles anzeigen
Ergebnis: Kein Fehler.
Erst nachdem ich bei der Varibalen static boolean soll_auch_genres oberhalb der onCreate() Methode die Wertzuweisung wegließ und den Wert in der onCreate() Methode setzte funktionierte dann auch die von mir gewünschte onDestroy() Methode richtig.
Ohne jeglichen Fehler, egal wie die Einstellungen gesetzt wurden und egal, wie die App gestartet wurde.
Ich wollte diese Erfahrungnug einfach mal mitteilen, da ich das Verhalten nicht ganz nachvollziehen kann.
Mitteilende Grüße, schymura