ボタンをクリックすると実行され、経過時間のようにテキストビューの内容を更新するインクリメントクロックを設計しています。しかし、このボタンを押すたびに、前のクロックがクリアされず、新しいインスタンスが開始され、前のスレッドと並行して実行されます。この同じ動作をどのように停止するかを理解できません。以下は私のコードです:
クラスレベル変数:
int repeatCounter = 1;
CountDownTimer tripTimeCounter;
================================================== ==============================
private View.OnClickListener but = new View.OnClickListener() {
public void onClick(View v) {
if (isOnline() == true) {
tripTimeCounter = new CountDownTimer(60 * 1000, 1000) {
@Override
public void onFinish() {
// TODO Auto-generated method stub
repeatCounter = repeatCounter + 1;
this.start();
// startTimeCounter();
}
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
timedisplay = (TextView) findViewById(R.id.textView3);
timedisplay.setText(formatInterval((repeatCounter * 60)
* 1000 - millisUntilFinished));
}
}.start();
tripTimeCounter.start();
} else {
Toast.makeText(getApplicationContext(),
"Not connected to the internet", Toast.LENGTH_LONG)
.show();
}
}
};