android使用timer


package com.ray.test;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class TestTimer extends Activity {
    Timer timer = new Timer();
    Handler handler = new Handler(){
        public void handleMessage(Message msg) {
            switch (msg.what) {    
            case 1:    
                setTitle("hear me?");
                break;    
            }    
            super.handleMessage(msg);
        }    
    };
    TimerTask task = new TimerTask(){
        public void run() {
            Message message = new Message();    
            message.what = 1;    
            handler.sendMessage(message);  
        }
        
    };
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        timer.schedule(task, 10000);
    }
}

這樣可以執行UI動作:

package com.ray.test;
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
public class TestTimer extends Activity {
    Timer timer = new Timer();
    TimerTask task = new TimerTask(){
        public void run() {
            runOnUiThread(new Runnable(){
            @Override
            public void run() {
                setTitle("hear me?");
            }});
            }
    };
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        timer.schedule(task, 10000);
    }
}
//退出計時器
task.cancel();
timer.cancel();
//以下是幾種調度task的方法:

//time為Date類型:在指定時間執行一次。
timer.schedule(task, time);

//firstTime為Date類型,period為long,表示從firstTime時刻開始,每隔period毫秒執行一次。
timer.schedule(task, firstTime, period);   

//delay 為long類型:從現在起過delay毫秒執行一次。
timer.schedule(task, delay);

//delay為long,period為long:從現在起過delay毫秒以后,每隔period毫秒執行一次。
timer.schedule(task, delay, period);
timer.schedule(new MyTask(),long time1,long timer2); 

這個方法有三個參數: 

第一個參數,是 TimerTask 類,在包:import java.util.TimerTask .使用者要繼承該類,並實現 public void run() 方法,因為 TimerTask 類 實現了 Runnable 接口。 

第二個參數的意思是,當你調用該方法后,該方法必然會調用 TimerTask 類 TimerTask 類 中的 run() 方法,這個參數就是這兩者之間的差值,轉換成漢語的意思就是說,用戶調用 schedule() 方法后,要等待這么長的時間才可以第一次執行 run() 方法。 

第三個參數的意思就是,第一次調用之后,從第二次開始每隔多長的時間調用一次 run() 方法。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM