Maison >Java >javaDidacticiel >Analyser l'utilisation et les exemples de Timer et TimerTask en Java sous Android
En développement, nous avons parfois besoin d'exécuter une certaine tâche à un intervalle fixe. Par exemple, si les contrôles de l'interface utilisateur doivent changer au fil du temps, nous pouvons utiliser les classes d'outils de minuterie fournies par Java, à savoir Timer et TimerTask.
Timer est une classe ordinaire avec plusieurs méthodes importantes ; TimerTask est une classe abstraite avec une méthode abstraite run(), qui est similaire à la méthode run() dans les threads. Nous utilisons Timer pour créer son objet, puis utilisez la méthode de planification de cet objet pour terminer cette opération d'intervalle.
La méthode planning a trois paramètres
Le premier paramètre est un objet de type TimerTask. La méthode run() que nous implémentons TimerTask est une tâche à exécuter périodiquement
.
Le deuxième paramètre a deux types, le premier est de type long, indiquant le temps qu'il faudra pour démarrer l'exécution, et l'autre est de type Date, indiquant le temps qu'il faudra pour démarrer l'exécution
//true 说明这个timer以daemon方式运行(优先级低,程序结束timer也自动结束) java.util.Timer timer = new java.util.Timer(true); TimerTask task = new TimerTask() { public void run() { //每次需要执行的代码放到这里面。 } }; //以下是几种调度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);Exemple de code :
import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import java.util.Timer; import java.util.TimerTask; public class TimerTaskActivity extends Activity { private Timer mTimer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // init timer mTimer = new Timer(); // start timer task setTimerTask(); } @Override protected void onDestroy() { super.onDestroy(); // cancel timer mTimer.cancel(); } private void setTimerTask() { mTimer.schedule(new TimerTask() { @Override public void run() { Message message = new Message(); message.what = 1; doActionHandler.sendMessage(message); } }, 1000, 1000/* 表示1000毫秒之後,每隔1000毫秒執行一次 */); } /** * do some action */ private Handler doActionHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); int msgId = msg.what; switch (msgId) { case 1: // do some action break; default: break; } } }; }Ce qui précède est l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'apprentissage de chacun, et je. j'espère que tout le monde utilisera davantage le site Web chinois. Pour plus d'articles analysant l'utilisation et des exemples de Timer et TimerTask en Java sous Android, veuillez faire attention au site Web PHP chinois !