2011-03-28 9 views

답변

0

Here 필요한 모든 정보를 찾을 수 있습니다. 보시다시피 타이머를 시작하는 다양한 방법이 있습니다. 적절한 schedule(...) 방법을 사용하기 만하면됩니다. 타이머를 중지하려면 cancel() 메서드를 사용하고 이후에는 purge() 메서드를 사용할 수 있습니다. 그러나 cancel() 메서드는이 타이머와 관련된 모든 작업을 취소합니다.

0

Timer 클래스에 대해 이야기하고 있습니까?

schedule 메서드를 사용하면 TimerTaskTimerTask#cancel을 예약하여 취소 할 수 있습니다.

0

카운트 다운 타이머를 중지하려면 ..

Timer.cancel();

0
Use this Working Code. 
    package com.example.stopwatch; 

    import android.app.Activity; 
    import android.os.Bundle; 
    import android.os.SystemClock; 
    import android.util.Log; 

    import android.widget.Button; 
    import android.widget.Chronometer; 
    import android.widget.CompoundButton; 

    import android.widget.ToggleButton; 

    public class StopWatch extends Activity { 
    Chronometer mChronometer; 

    Button button; 
    private long start = SystemClock.elapsedRealtime(); 
    private long stop = 0; 
    private long totalPauseTime = 0; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 

      try { 
       super.onCreate(savedInstanceState); 

       setContentView(R.layout.main); 


       final ToggleButton toggle = (ToggleButton)   findViewById(R.id.toggleButton1); 
       final Chronometer chrono = (Chronometer) findViewById(R.id.chronometer1); 

       final ToggleButton toggle2 = (ToggleButton)  findViewById(R.id.toggleButton2); 
       final Chronometer chrono2 = (Chronometer)   findViewById(R.id.chronometer2); 

     toggle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, 
        boolean isChecked) { 
       try { 
        Log.i("[chrono]", String.format("start:%d stop:%d delta: %d",start, stop, start - stop)); 
        Log.i("[chrono]", "base:" +chrono.getBase()); 
        Log.i("[chrono]", "elapsed time:" +SystemClock.elapsedRealtime()); 

        if (isChecked) { 
         chrono.start(); 
         start = SystemClock.elapsedRealtime(); 
         chrono.setBase(start - totalPauseTime); 
        } else { 
         totalPauseTime += SystemClock.elapsedRealtime() - start; 
         chrono.stop(); 
        } 
       } catch (Exception e) { 
        // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

    } 
    }); 

    toggle2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { 
     @Override 
    public void onCheckedChanged(CompoundButton buttonView, 
         boolean isChecked) { 
       try { 
        Log.i("[chrono]", String.format("start:%d stop:%d   delta: %d",start, stop, start - stop)); 
        Log.i("[chrono]", "base:" +chrono.getBase()); 
        Log.i("[chrono]", "elapsed time:" +SystemClock.elapsedRealtime()); 

         if (isChecked) { 
          chrono2.start(); 
          start = SystemClock.elapsedRealtime(); 
          chrono2.setBase(start - totalPauseTime); 
        } else { 
         totalPauseTime +=     SystemClock.elapsedRealtime() - start; 
         chrono2.stop(); 
        } 
       } catch (Exception e) { 


    enter code here 

     // TODO Auto-generated catch block 
        e.printStackTrace(); 
       } 

    } 
    }); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
    }  } 
관련 문제