你如何使用TimerTask来运行一个线程?

时间:2012-04-05 13:47:52

标签: android multithreading timer timertask

我很难在Android上找到TimerTask功能的文档。 我需要使用TimerTask间隔运行一个线程,但不知道如何去做。 任何建议或例子将不胜感激。

3 个答案:

答案 0 :(得分:61)

我已经实现了类似的东西并且工作正常:

    private Timer mTimer1;
    private TimerTask mTt1;
    private Handler mTimerHandler = new Handler();

    private void stopTimer(){
        if(mTimer1 != null){
            mTimer1.cancel();
            mTimer1.purge();
        }
    }

    private void startTimer(){
        mTimer1 = new Timer();
        mTt1 = new TimerTask() {
            public void run() {
                mTimerHandler.post(new Runnable() {
                    public void run(){
                        //TODO
                    }
                });
            }
        };

        mTimer1.schedule(mTt1, 1, 5000);
    }

答案 1 :(得分:31)

您使用Timer,当您使用任何TimerTask方法安排schedule时,系统会自动为您创建一个新主题。

示例:

Timer t = new Timer();
t.schedule(myTimerTask, 1000L);

这会在每秒一次属于该Timer的线程中创建一个运行myTimerTask的Timer。

答案 2 :(得分:7)

这是计时器任务的完美示例。

Timer timerObj = new Timer();
TimerTask timerTaskObj = new TimerTask() {
    public void run() {
       //perform your action here
    }
};
timerObj.schedule(timerTaskObj, 0, 15000);