2013-10-29 15 views
10
//Creates a new Timer which may be specified to be run as a daemon thread. 
Timer(boolean isDaemon) 

//Creates a new non-daemon Timer. 
Timer() 

Khi nào một bộ hẹn giờ nên được khởi động như Daemon bên trong ứng dụng android?Timer() là Daemon Vs non Daemon

Tài liệu không nói gì về nó.

http://developer.android.com/reference/java/util/Timer.html

+1

bạn bắt đầu, khi bạn cần. nó thực sự không rõ ràng ý của bạn là gì –

Trả lời

5

Nếu ứng dụng của bạn đang chạy một người sử dụng sợi (tức là phi daemon thread) thì JVM sẽ đợi cho đến khi trở của phương pháp run() của nó (hoặc các chủ đề đã hoàn thành thực hiện của nó) trước khi nó chấm dứt ứng dụng. Tuy nhiên, nếu thread của bạn được đặt là daemon, thì nó sẽ chỉ thị cho JVM không chờ hoàn thành việc thực thi của nó trong trường hợp JVM cần đóng ứng dụng (tức là khi không có chủ đề người dùng nào khác đang chạy). Ngoài ra, cả hai loại luồng đều được xử lý như nhau trong tất cả các khía cạnh khác.

Trong trường hợp của bạn, bạn không nên đặt Timer làm chủ đề daemon, cho đến khi và trừ khi bạn không muốn thực thi để giữ việc chấm dứt ứng dụng.

Để biết thêm thông tin, hãy đọc thisthis.

+2

Xem cách Android có phương thức riêng, khác biệt của nó để chấm dứt các quy trình, không rõ ràng chính xác ý nghĩa và mức độ liên quan của việc ứng dụng có thể bị đóng do loại luồng hẹn giờ có. – Michael