Có một số nhược điểm của việc sử dụng hẹn giờ
- Nó tạo ra chỉ sợi đơn để thực hiện các nhiệm vụ, nếu một nhiệm vụ mất quá nhiều thời gian để chạy, các nhiệm vụ khác đau khổ.
- Nó không xử lý ngoại lệ ném bởi nhiệm vụ và sợi chỉ chấm dứt, mà ảnh hưởng đến nhiệm vụ theo lịch trình khác và họ không bao giờ chạy giao ScheduledThreadPoolExecutor
đúng với tất cả những vấn đề này và nó không có ý nghĩa để sử dụng Timer .. có hai phương pháp mà có thể được sử dụng trong trường hợp của bạn .. scheduleAtFixedRate (...) và scheduleWithFixedDelay (..)
class MyTask implements Runnable {
@Override
public void run() {
System.out.println("Hello world");
}
}
ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
long period = 100; // the period between successive executions
exec.scheduleAtFixedRate(new MyTask(), 0, period, TimeUnit.MICROSECONDS);
long delay = 100; //the delay between the termination of one execution and the commencement of the next
exec.scheduleWithFixedDelay(new MyTask(), 0, delay, TimeUnit.MICROSECONDS);
Nguồn
2013-09-04 05:34:42
tôi ưa thích Timer để đạt được điều này –
@BirajZalavadia không sử dụng Timer (http : //www.mopri.de/2010/timertask-bad-d o-it-the-android-cách-sử dụng-một-xử lý /), sử dụng Handler hoặc ScheduledThreadPoolExecutor. – AppiDevo