2
2slow4you
Gast
Hallo zusammen,
ich bin gerade dabei eine App zu entwickeln, die den User an zeitabhängige Ereignisse in Spielen errinern soll. Dafür habe ich jetzt für jedes Ereignis einen Button mit eigener onClick Methode genommen, die dann einen Thread startet, der solange läuft, bis ein bestimmter Wert bis Null heruntergezählt ist.
Es funktionert auch alles soweit, der Button wird jede Sekunde aktualisiert und am Ende kommt die Notification auch an. Doch zwei Dinge laufen noch nicht wie gewollt:
1.: Der Countdown läuft im Hintergrund weiter, wenn man die App mit dem Homebutton beendet, doch wenn man das Gerät sperrt und den Display ausschaltet, macht er scheinbar eine Pause. Sobald der Display wieder an ist, läuft der Thread weiter. Wie kann man den Thread jetzt so einstellen, dass er auch mit ausgeschaltenem Display weiterläuft?
2.: Wenn man die App zum Beispiel mit dem Homebutton beendet und die App dann wieder aufruft, wird der Button nicht mehr aktualisiert, obwohl der Thread im Hintergrund weiterläuft. Wie kann ich das Aktualisieren wieder fortsetzen? Mit onResume() vielleicht?
Das ist der Code, der von jedem Button ausgeführt wird:
Kann mir jemand eine Lösung zu den oben genannten Fragen geben oder soll ich besser gar keinen Thread verwenden? Als ich aber einen Countdowntimer genommen habe, hat er immer die verschiedenen Countdowns durcheinandergeschmissen.
Vielen Dank schonmal
ich bin gerade dabei eine App zu entwickeln, die den User an zeitabhängige Ereignisse in Spielen errinern soll. Dafür habe ich jetzt für jedes Ereignis einen Button mit eigener onClick Methode genommen, die dann einen Thread startet, der solange läuft, bis ein bestimmter Wert bis Null heruntergezählt ist.
Es funktionert auch alles soweit, der Button wird jede Sekunde aktualisiert und am Ende kommt die Notification auch an. Doch zwei Dinge laufen noch nicht wie gewollt:
1.: Der Countdown läuft im Hintergrund weiter, wenn man die App mit dem Homebutton beendet, doch wenn man das Gerät sperrt und den Display ausschaltet, macht er scheinbar eine Pause. Sobald der Display wieder an ist, läuft der Thread weiter. Wie kann man den Thread jetzt so einstellen, dass er auch mit ausgeschaltenem Display weiterläuft?
2.: Wenn man die App zum Beispiel mit dem Homebutton beendet und die App dann wieder aufruft, wird der Button nicht mehr aktualisiert, obwohl der Thread im Hintergrund weiterläuft. Wie kann ich das Aktualisieren wieder fortsetzen? Mit onResume() vielleicht?
Das ist der Code, der von jedem Button ausgeführt wird:
Code:
Thread game_a1 = new Thread() {
@Override
public void run() {
try {
while (actualtimea1 > 1) {
Thread.sleep(delay);//1000
runOnUiThread(new Runnable() {
@Override
public void run() {
actualtimea1 = actualtimea1 - 1;
buttona1.setText(actualthinga1 + ": " + String.valueOf(actualtimea1));
timerHasStarted_a1 = true;
if (actualtimea1 == 0) {
Notification("Gameplay Timer", "The " + actualthinga1 + " is back!");
actualtimea1 = newtime;
buttona1.setText(actualthinga1 + " (End)");
timerHasStarted_a1 = false;
}
}
});
}
} catch (InterruptedException e) {
}
}
};
if (!timerHasStarted_a1) {
game_a1.start();
}
Vielen Dank schonmal