Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android 比Timer更好方法

Android 比Timer更好方法

編輯:Android開發實例


       Android中的Timer一般像下面這樣寫:

java代碼:
Timer timer = new Timer( );

TimerTask task = new TimerTask( ) {
public void run ( ) {
Message message = new Message( );
message.what = 1;
handler.sendMessage(message);
}
};

final Handler handler = new Handler( ) {
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
log.e("Timer","Timer");
update( );
break;
}

super.handleMessage(msg);
}
};

protected void onDestroy ( ) {
if (timer != null) {
timer.cancel( );
timer = null;
}
super.onDestroy( );
}
protected void onCreate (Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
timer.schedule(task,1000,5000);
}


        最重要的一點是 timer.schedule(task,1000,5000),如果設置為 timer.schedule(task,5000)是不會工作的。

        因為timer.schedule(task,5000) 是表示執行一次的任務。
        timer.schedule(task,1000,5000)表示 1 秒鐘後開始 5 秒鐘為周期 重復執行,
        更好的方法是通過下面的代碼 (Handler加Runnable線程,更簡潔)

java代碼:
private Handler handler = new Handler( );

private Runnable runnable = new Runnable( ) {
public void run ( ) {
update( );

handler.postDelayed(this,1000);
//postDelayed(this,1000)方法安排一個Runnable對象到主線程隊列中
}
};

handler.postDelayed(runnable,1000); // 開始Timer
handler.removeCallbacks(runnable); //停止Timer

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved