Android中怎么实现计时与倒计时

本篇文章给大家分享的是有关Android中怎么实现计时与倒计时,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联公司专注于企业成都全网营销、网站重做改版、石泉网站定制设计、自适应品牌网站建设、H5技术成都商城网站开发、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为石泉等各大城市提供网站开发制作服务。

方法一

Timer与TimerTask(Java实现)

public class timerTask extends Activity{  
  
  private int recLen = 11;  
  private TextView txtView;  
  Timer timer = new Timer();  
  
  public void onCreate(Bundle savedInstanceState){  
    super.onCreate(savedInstanceState);  
      
    setContentView(R.layout.timertask);  
    txtView = (TextView)findViewById(R.id.txttime);  
      
    timer.schedule(task, 1000, 1000);    // timeTask  
  }    
  
  TimerTask task = new TimerTask() {  
    @Override  
    public void run() {  
  
      runOnUiThread(new Runnable() {   // UI thread  
        @Override  
        public void run() {  
          recLen--;  
          txtView.setText(""+recLen);  
          if(recLen < 0){  
            timer.cancel();  
            txtView.setVisibility(View.GONE);  
          }  
        }  
      });  
    }  
  };  
}

方法二

TimerTask与Handler(不用Timer的改进型)

public class timerTask extends Activity{  
  private int recLen = 11;  
  private TextView txtView;  
  Timer timer = new Timer();  
  
  public void onCreate(Bundle savedInstanceState){  
    super.onCreate(savedInstanceState);  
  
    setContentView(R.layout.timertask);  
    txtView = (TextView)findViewById(R.id.txttime);  
  
    timer.schedule(task, 1000, 1000);    // timeTask  
  }    
  
  final Handler handler = new Handler(){  
    @Override  
    public void handleMessage(Message msg){  
      switch (msg.what) {  
      case 1:  
        txtView.setText(""+recLen);  
        if(recLen < 0){  
          timer.cancel();  
          txtView.setVisibility(View.GONE);  
        }  
      }  
    }  
  };  
  
  TimerTask task = new TimerTask() {  
    @Override  
    public void run() {  
      recLen--;  
      Message message = new Message();  
      message.what = 1;  
      handler.sendMessage(message);  
    }  
  };  
}

方法三

Handler与Message(不用TimerTask)  

public class timerTask extends Activity{  
  private int recLen = 11;  
  private TextView txtView;  
  
  public void onCreate(Bundle savedInstanceState) {   
    super.onCreate(savedInstanceState);   
  
    setContentView(R.layout.timertask);   
    txtView = (TextView)findViewById(R.id.txttime);  
  
    Message message = handler.obtainMessage(1);   // Message  
    handler.sendMessageDelayed(message, 1000);  
  }   
  
  final Handler handler = new Handler(){  
  
    public void handleMessage(Message msg){     // handle message  
      switch (msg.what) {  
      case 1:  
        recLen--;  
        txtView.setText("" + recLen);  
  
        if(recLen > 0){  
          Message message = handler.obtainMessage(1);  
          handler.sendMessageDelayed(message, 1000);   // send message  
        }else{  
          txtView.setVisibility(View.GONE);  
        }  
      }  
  
      super.handleMessage(msg);  
    }  
  };  
}

方法四

Handler与Thread(不占用UI线程)

public class timerTask extends Activity{  
  private int recLen = 0;  
  private TextView txtView;  
  
  public void onCreate(Bundle savedInstanceState){  
    super.onCreate(savedInstanceState);  
  
    setContentView(R.layout.timertask);  
    txtView = (TextView)findViewById(R.id.txttime);  
      
    new Thread(new MyThread()).start();     // start thread  
  }    
  
  final Handler handler = new Handler(){     // handle  
    public void handleMessage(Message msg){  
      switch (msg.what) {  
      case 1:  
        recLen++;  
        txtView.setText("" + recLen);  
      }  
      super.handleMessage(msg);  
    }  
  };  
  
  public class MyThread implements Runnable{   // thread  
    @Override  
    public void run(){  
      while(true){  
        try{  
          Thread.sleep(1000);   // sleep 1000ms  
          Message message = new Message();  
          message.what = 1;  
          handler.sendMessage(message);  
        }catch (Exception e) {  
        }

方法五

Handler与Runnable(最简单型) 

 
 public class timerTask extends Activity{  
  private int recLen = 0;  
  private TextView txtView;  
  
  public void onCreate(Bundle savedInstanceState){  
    super.onCreate(savedInstanceState);  
  
    setContentView(R.layout.timertask);  
    txtView = (TextView)findViewById(R.id.txttime);  
    runnable.run();  
  }    
  
  Handler handler = new Handler();  
  Runnable runnable = new Runnable() {  
    @Override  
    public void run() {  
      recLen++;  
      txtView.setText("" + recLen);  
      handler.postDelayed(this, 1000);  
    }  
  };  
}

以上就是Android中怎么实现计时与倒计时,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。

当前名称:Android中怎么实现计时与倒计时
URL链接:https://www.cdcxhl.com/article26/ishdjg.html

成都网站建设公司_创新互联,为您提供网站维护网站内链电子商务企业网站制作虚拟主机网站改版

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司