Android中怎么實現(xiàn)計時與倒計時

本篇文章給大家分享的是有關(guān)Android中怎么實現(xiàn)計時與倒計時,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)公司專注于企業(yè)成都全網(wǎng)營銷、網(wǎng)站重做改版、石泉網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、成都商城網(wǎng)站開發(fā)、集團公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為石泉等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

方法一

Timer與TimerTask(Java實現(xiàn))

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中怎么實現(xiàn)計時與倒計時,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

當前名稱:Android中怎么實現(xiàn)計時與倒計時
URL鏈接:http://muchs.cn/article26/ishdjg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、網(wǎng)站內(nèi)鏈電子商務(wù)、企業(yè)網(wǎng)站制作虛擬主機、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司