Подтвердить что ты не робот

Как вы используете TimerTask для запуска потока?

Я изо всех сил пытаюсь найти документацию для функции TimerTask на Android. Мне нужно периодически запускать поток с помощью TimerTask, но не знаю, как это сделать. Любые советы или примеры были бы весьма полезны.

4b9b3361

Ответ 1

Вы используете Timer и автоматически создаете новый поток для вас, когда вы планируете TimerTask использовать любой из schedule -методы.

Пример:

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

Это создает таймер, выполняющий myTimerTask в потоке, принадлежащем этому таймеру один раз в секунду.

Ответ 2

Я реализовал что-то вроде этого, и он отлично работает:

    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);
    }

Ответ 3

Это прекрасный пример задачи таймера.

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