2012-11-09 51 views
11

Ưu và nhược điểm của việc sử dụng ScheduledExecutorService/Timer/Handler là gì? Theo tôi hiểu trong Android thay vì Timer, bạn cần sử dụng Handler, nhưng còn khoảng ScheduledExecutorService thì sao?ScheduledExecutorService vs Timer vs Handler

Vì tôi hiểu HandlerScheduledExecutorService chỉ dành cho thời gian tương đối, đúng không?

+2

http://stackoverflow.com/questions/2333680/android-schedule-action – assylias

+2

Sự khác biệt chính giữa Timer và ScheduledExecutor: sau này có thể sử dụng một số luồng (thông qua một nhóm luồng) và loại bỏ nguy cơ của một tác vụ trì hoãn tiếp theo một: http://stackoverflow.com/questions/409932/java-timer-vs-executorservice – assylias

+0

Điều này cho thấy một cách rõ ràng http://stackoverflow.com/a/6558821/1016544 –

Trả lời

3

Tất cả ba cho phép bạn thực hiện các tác vụ trên một chuỗi khác (ví dụ: không phải chính). Handler cho phép bạn sử dụng thông báo truyền mẫu Actor để giao tiếp an toàn giữa chuỗi. Nó không cho phép bạn làm thời gian/sự chậm trễ/etc.

A ScheduledExecutorService là giải pháp quản lý luồng rất chung chung. Bạn khởi tạo nó với một số nhất định cho các luồng công nhân và sau đó cung cấp cho nó các đơn vị làm việc. Bạn có thể trì hoãn/thời gian và lặp lại các đơn vị công việc.

Lớp Timer có API đơn giản giống như một ScheduledExecutorService cho một lần sử dụng một luồng. API chính thức đề xuất không sử dụng lớp này nhưng thay vào đó, hãy cuộn Trình theo lịch biểu của riêng bạn.

+2

bạn có thể sử dụng Handler # postDelayed (Runnable, khoảng thời gian) – siliconeagle

Các vấn đề liên quan