How can I pause the timer in android?

后端 未结 2 632
天涯浪人
天涯浪人 2021-01-07 05:04

I have gone through the link http://dewful.com/?tag=basic-android-timer regarding the timer application in android. It is working fine. I need to add the pause butto

2条回答
  •  无人及你
    2021-01-07 05:50

    public void time(long m){
        timer=new CountDownTimer(m, 1000) {
    
                public void onTick(long millisUntilFinished) {
    
                    tv_timer.setText(formatTime(millisUntilFinished));
    
                }
    
                public void onFinish() {
                    tv_timer.setText("done!");
                }
    
             }.start();
    
     }
    

    i have used this for timer and i have put button for pause and use this

        case R.id.bT_PAUSE:
        String s_time = null;
    
        try{
        if(Bt_pause.getText().equals("PAUSE")){
    
        s_time=tv_timer.getText().toString();
        timer.cancel();
        String[] Pause_time=s_time.split(":");
        m=Long.parseLong(Pause_time[0].trim());
        n=Long.parseLong(Pause_time[1].trim());
        m=(m*60)+n;
        m=m*1000;
        Bt_pause.setText("RESUME");
    
        }else if(Bt_pause.getText().equals("RESUME")){
            //min_longmillis=Long.parseLong(sss);
            //min_longmillis=min_longmillis*1000*60;
            //min_longmillis=m;
            //timer.start();
            Toast.makeText(this,String.valueOf(m),Toast.LENGTH_SHORT).show();
            time(m);
            Bt_pause.setText("PAUSE");
        }
        }catch(Exception e){
            Toast.makeText(this,e.toString(),Toast.LENGTH_SHORT).show();
        }
        break;
    

    and this for format time

    public String formatTime(long millis) {  
        String output = "00:00";  
        long seconds = millis / 1000;  
        long minutes = seconds / 60;  
    
        seconds = seconds % 60;  
        minutes = minutes % 60;  
    
        String sec = String.valueOf(seconds);  
        String min = String.valueOf(minutes);  
    
        if (seconds < 10)  
            sec = "0" + seconds;  
        if (minutes < 10)  
            min= "0" + minutes;  
    
        output = min + " : " + sec;  
        return output;
    }//formatTime
    

提交回复
热议问题