web-dev-qa-db-fra.com

Comment utilisez-vous une TimerTask pour exécuter un thread?

J'ai du mal à trouver la documentation de la fonction TimerTask sur Android. J'ai besoin d'exécuter un thread à intervalles à l'aide d'une TimerTask mais je n'ai aucune idée de la façon de procéder. Tout conseil ou exemple serait grandement apprécié.

19
Alex Haycock

Vous utilisez un Timer , et cela crée automatiquement un nouveau thread pour vous lorsque vous planifiez un TimerTask en utilisant l'une des méthodes schedule-.

Exemple:

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

Cela crée une minuterie exécutant myTimerTask dans un thread appartenant à cette minuterie une fois par seconde.

31
Jave

J'ai implémenté quelque chose comme ça et cela fonctionne bien:

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

C'est un exemple parfait pour la tâche du minuteur.

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