Dalam pengembangan, kami kadang -kadang memiliki kebutuhan untuk melakukan tugas tertentu pada periode waktu yang tetap. Misalnya, kontrol pada UI perlu diubah dari waktu ke waktu, kita dapat menggunakan kelas alat timer yang disediakan oleh Java, yaitu timer dan timertask.
Timer adalah kelas biasa dengan beberapa metode penting; TimerTask adalah kelas abstrak dengan metode abstrak run (), mirip dengan metode run () di utas. Kami menggunakan timer untuk membuat objek, dan kemudian menggunakan metode jadwal objek ini untuk menyelesaikan operasi interval ini.
Metode jadwal memiliki tiga parameter
Parameter pertama adalah objek tipe timertask. Metode Run () untuk mengimplementasikan Timertask adalah tugas yang perlu dieksekusi secara berkala;
Ada dua jenis parameter kedua. Yang pertama adalah tipe panjang, yang menunjukkan berapa lama untuk memulai eksekusi, dan yang lainnya adalah tipe tanggal, yang menunjukkan bahwa ia memulai eksekusi setelah waktu itu;
Parameter ketiga adalah siklus eksekusi, yang merupakan tipe panjang.
Metode jadwal juga memiliki kelebihan eksekusi dua parameter. Parameter pertama masih timertask, dan bentuk kedua yang diwakili selama berapa lama akan dieksekusi setelah dieksekusi. Untuk tanggal, itu berarti akan dieksekusi setelah waktu tertentu.
Timer adalah utas, yang menggunakan metode jadwal untuk menyelesaikan penjadwalan Timertask. Beberapa timertasks dapat berbagi timer. Dengan kata lain, objek timer memanggil metode jadwal sekali, yang membuat utas. Setelah menelepon jadwal sekali, Timertask akan melingkar tanpa batas, dan menggunakan Timer's Cancel () untuk menghentikan operasi. Tentu saja, setelah timer yang sama menjalankan metode Batal () sekali, semua utas timer diakhiri.
penggunaan:
// Benar berarti bahwa timer ini berjalan dalam mode daemon (prioritas rendah, timer mengakhiri program dan berakhir secara otomatis) java.util.timer timer = java.util.timer baru (true); TimerTask Task = new timertask () {public void run () {// Letakkan kode yang perlu dieksekusi setiap kali diletakkan di sini. }}; // Berikut ini adalah beberapa metode untuk penjadwalan tugas: // Waktu adalah tipe tanggal: dieksekusi sekali pada waktu yang ditentukan. timer.schedule (tugas, waktu); // Pertama kali adalah tipe tanggal, periode panjang, menunjukkan bahwa itu dieksekusi setiap milidetik dari waktu pertama. timer.schedule (tugas, pertama kali, titik); // Penundaan adalah tipe panjang: Penundaan dieksekusi setiap milidetik mulai sekarang. timer.schedule (tugas, penundaan); // Penundaan panjang, titik panjang: Setelah penundaan milidetik disahkan dari sekarang, eksekusi setiap milidetik. timer.schedule (tugas, penundaan, titik); Kode contoh:
impor android.app.activity; impor android.os.bundle; impor android.os.handler; impor android.os.message; impor java.util.timer; impor java.util.timertask; TimerKaskActivity kelas publik memperluas aktivitas {private timer mTimer; @Override Protected void onCreate (bundle savedInstanceState) {super.onCreate (saveDinstanceState); // init timer mTimer = timer baru (); // MULAI TUGAS TIKTIMERTASK (); } @Override Protected void ondestroy () {super.ondestroy (); // Batalkan 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/* means that after 1000 milliseconds, line every 1000 milliseconds*/); } / ** * Lakukan beberapa tindakan * / private handler doactionHandler = new handler () {@Override public void handlemessage (pesan msg) {super.handlemessage (msg); int msgid = msg.what; switch (msgid) {case 1: // lakukan beberapa break tindakan; default: break; }}}; }Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.