En développement, nous avons parfois besoin d'effectuer une certaine tâche à une période de temps fixe. Par exemple, les commandes de l'interface utilisateur doivent changer au fil du temps, nous pouvons utiliser les classes d'outils des minuteries fournies par Java, à savoir la minuterie et la tricèrerie.
La minuterie est une classe ordinaire avec plusieurs méthodes importantes; Timertask est une classe abstraite avec une méthode abstraite run (), similaire à la méthode run () dans un thread. Nous utilisons la minuterie pour créer un objet, puis utilisons la méthode de planification de cet objet pour terminer cette opération d'intervalle.
La méthode de planification a trois paramètres
Le premier paramètre est un objet de type Timertask. La méthode RUN () d'implémentation de Timertask est une tâche qui doit être exécutée périodiquement;
Il existe deux types du deuxième paramètre. Le premier est un type long, ce qui indique combien de temps il faut pour démarrer l'exécution, et l'autre est le type de date, ce qui indique qu'il commence l'exécution après cette heure;
Le troisième paramètre est le cycle d'exécution, qui est de type long.
La méthode de planification a également une surcharge d'exécution à deux paramètres. Le premier paramètre est toujours TIMERTERAD, et le deuxième formulaire représenté car longtemps indique la durée de l'exécution après son exécution. Pour la date, cela signifie qu'il sera exécuté après une certaine heure.
La minuterie est un thread, qui utilise la méthode de planification pour compléter la planification de Timertask. Plusieurs têtes de gamme peuvent partager une minuterie. C'est-à-dire que l'objet Timer appelle la méthode de planification une fois, ce qui crée un fil. Après avoir appelé le calendrier une fois, Timertask bouclera de manière illimité et utilise le Timer's Cancel () pour arrêter l'opération. Bien sûr, une fois que le même temporisateur exécute la méthode Cancel () une fois, tous les threads de minuterie sont terminés.
usage:
// Vrai signifie que cette minuterie s'exécute en mode démon (faible priorité, la minuterie termine le programme et se termine automatiquement) java.util.timer timer = new Java.util.timer (true); TIMERTASK TASK = NOUVEAU TIMERTASK () {public void run () {// Mettez le code qui doit être exécuté à chaque fois que vous est mis ici. }}; // Voici plusieurs méthodes de planification des tâches: // L'heure est le type de date: exécuté une fois à une heure spécifiée. timer.schedule (tâche, temps); // La première fois est le type de date, la période est longue, indiquant qu'il est exécuté toutes les millisecondes de la première fois. timer.schedule (tâche, première fois, période); // Delay est long: le retard est exécuté une fois de temps à partir de chaque milliseconde à partir de maintenant. timer.schedule (tâche, retard); // le retard est long, la période est longue: après que des millisecondes de retard soient passées à partir de maintenant, exécutez toutes les millisecondes. timer.schedule (tâche, retard, période); Exemple de code:
import Android.App.activité; import android.os.bundle; import Android.os.Handler; import Android.os.Message; import java.util.timer; import java.util.timertask; classe publique TimertAskActivity étend l'activité {private Timer Mtimer; @Override Protected void onCreate (bundle SavedInStanceState) {super.onCreate (SavedInStanceState); // init timer mtimer = new Timer (); // Démarrer la tâche de temporisation setTimerTask (); } @Override Protected void onDestroy () {super.ondestroy (); // Annuler la minuterie mtimer.cancel (); } private void Settimertask () {mTimer.schedule (new TimemerSk () {@Override public void run () {message message = new message (); message.what = 1; doactionhandler.sendMessage (message);}}, 1000, 1000 / *; } / ** * faire une action * / Handler privé doactionhandler = new handler () {@Override public void handleMessage (message msg) {super.handleMessage (msg); int msgid = msg.what; switch (msgid) {cas 1: // faire une rupture d'action; par défaut: pause; }}}; }Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.