Countdowntimer stoppen und weiterlaufen lassen

  • Antworten:1
Maximilian O
  • Forum-Beiträge: 990

20.09.2011, 20:43:27 via Website

Hey Leute,
in meiner neuen App lasse ich einen Countdowntimer laufen. Leider gibt es keine Methode release() und stop(). Gibt es irgendetwas vergleichbares? Also um ihn anzuhalten und weiterlaufen zu lassen?
MfG Maximiliam

Vergiss nie wieder Geburtstage, oder viel schlimmer, deinen Hochzeitstag - Birthdays Download

Antworten
Markus B.
  • Forum-Beiträge: 636

20.09.2011, 23:57:01 via Website

Hi, schauen wir doch mal in die API ... CountDownTimer und wir sehen es gibt dort keine Methode release() oder stop(). Allerdings gibt es dort eine Methode cancel() und via onTick() bekommst du immer einen Wert. Der Tick hängt vom Intervall ab, welchen du bei erstellen des CountDownTimer angibst. Die entsprechende Funktion kannst dir aber ganz einfach bauen. So z.B. :

1public class MyActivity extends Activity {
2
3 private CountDownTimer _runningTimer;
4
5 private long _lastTick;
6
7 @Override
8 public void onCreate(Bundle savedInstanceState) {
9 super.onCreate(savedInstanceState);
10 setContentView(R.layout.main);
11
12 /*
13 * Timer erzeugen und auf defaul von 30 Sekungen setzten.
14 */
15 final TextView anzeige = (TextView)findViewById(R.id.text);
16 _runningTimer = createTimer(30000, anzeige).start();
17 }
18
19 /*
20 * Stop den aktuellen Timer
21 */
22 public void stopTimer(final View view)
23 {
24 _runningTimer.cancel();
25 }
26
27 /**
28 * Erzeugt einen neuen Timer, welcher als Startpunkt den Endpunkt des alten Timer nutzt.
29 */
30 public void weiterTimer(final View view)
31 {
32 final TextView anzeige = (TextView)findViewById(R.id.text);
33 _runningTimer = createTimer(_lastTick, anzeige).start();
34 }
35
36 private CountDownTimer createTimer(final long start, final TextView textView)
37 {
38 return new CountDownTimer(start, 1000)
39 {
40 @Override
41 public void onTick(long tickTime) {
42 textView.setText("Renne : " + tickTime / 1000);
43 _lastTick = tickTime;
44 }
45
46 @Override
47 public void onFinish() {
48 textView.setText("done!");
49 }
50 };
51 }
52}

Gruß,
Markus

— geändert am 20.09.2011, 23:57:41

Antworten