2011-06-21 34 views
7

Tôi đã chạy dịch vụ Android nhưng tôi muốn thực hiện một phương thức dịch vụ cụ thể cứ sau X giờ để cập nhật dữ liệu. Aproach tốt nhất để làm điều này mà không lãng phí tài nguyên Android là gì?Làm cách nào để chạy một phương thức dịch vụ định kỳ?

+0

Tại sao bạn không chỉ bắt đầu dịch vụ một lần và sau đó thêm bộ hẹn giờ hoặc làm cho chủ đề ngủ trong khoảng thời gian bạn thích? – CodeKrieger

+0

Điều này sẽ yêu cầu quy trình dịch vụ thực thi * luôn *. Hàng giờ. Đây không phải là tài nguyên hiệu quả. –

+0

Cảm ơn! Tôi đang học, tôi sẽ tìm cách thêm hẹn giờ. Có đề nghị nào không? – Ferran

Trả lời

8

Nhìn vào AlarmManager.

Làm rõ: vì bạn muốn phương thức dịch vụ chạy theo các khoảng thời gian theo giờ, bạn không muốn giữ cho quy trình dịch vụ của mình chạy suốt thời gian này. Bằng cách sử dụng AlarmManager, hệ điều hành có thể giết dịch vụ khi không cần thiết và sau đó đưa nó lên để thực thi phương thức khi đến lúc.

+0

Điều gì xảy ra nếu khoảng thời gian là một vài phút? Sử dụng AlarmManager có tốt không? Hoặc tốt hơn làm cho sợi chỉ được gọi bởi dịch vụ ngủ trong vài phút? – Leeeeeeelo

+1

@Leeeeeeelo - cho hiệu quả, với khoảng thời gian nhỏ (ít hơn 10-15 phút), bạn không nên đi với AlarmManager. Có các cuộc thảo luận ở nơi khác trên SO, ví dụ: http://stackoverflow.com/questions/11434056/how-to-run-a-method-every-x-seconds –

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