標籤:
------你需要努力,你還沒資格休息-----
Anroid中的倒計時實現:
在此先敘述小弟瞭解的,以後再補充整理。見諒
1、Timer和TimerTask
public class TimerTask extends Activity { //設定一個倒計時 private int recLen =12; private TextView textview; Timer timer=new Timer(); public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.timertask); textview=(TextView)findViewById(R.id.txttime); //延遲1000毫秒後再開始執行,第二個1000是間隔多長時間執行一次 timer.schedule(task,1000,1000); //timertask } TimerTask task=new TimerTask(){ public void run(){ //跳到主線程跟新 runOnUiThread(new Runnable(){//ui thread public void run(){ recLen --; textview.setText(""+recLen ); //判斷倒計時是否走完 if(recLen<0){ //停止執行 timer.cancel(); //隱藏倒計時 textview.setVisibility(View.GONE); } } }); } } }
2、TimerTask與Handler(不用Timer的改進型)
public class TimerTask extends Activity { //設定一個倒計時 private int recLen =12; private TextView textview; Timer timer=new Timer(); public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.timertask); textview=(TextView)findViewById(R.id.txttime); //延遲1000毫秒後再開始執行,第二個1000是間隔多長時間執行一次 timer.schedule(task,1000,1000); //timertask } final Handler handler=new Handler(){ public void handleMessage(Message msg){ switch(msg.what){ case 1: textview.setText(""+recLen ); //判斷倒計時是否走完 if(recLen<0){ //停止執行 timer.cancel(); //隱藏倒計時 textview.setVisibility(View.GONE); } } } } TimerTask task=new TimerTask(){ public void run(){ recLen--; //發送訊息到handler中進行處理 Message message=new Message(); message.what=1; handler.sendMessage(message); } } }
}
----------小弟才藝不精,如有紕漏.請各位賜教------
Android中的倒計時實現