0

ボタンをクリックすると実行され、経過時間のようにテキストビューの内容を更新するインクリメントクロックを設計しています。しかし、このボタンを押すたびに、前のクロックがクリアされず、新しいインスタンスが開始され、前のスレッドと並行して実行されます。この同じ動作をどのように停止するかを理解できません。以下は私のコードです:

クラスレベル変数:

 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();
        }
    }
};
4

1 に答える 1