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ỳ?
Trả lời
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.
Đ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
@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 –
- 1. Cách gọi phương thức chạy dịch vụ windows
- 2. Cách gọi phương thức hoạt động từ một dịch vụ
- 3. Làm cách nào để chuyển @FormParam sang dịch vụ RESTful từ một phương thức khác?
- 4. Cách gọi một Phương thức Dịch vụ Web?
- 5. Biểu thức phím tắt AOP cho bất kỳ phương thức công khai nào của dịch vụ
- 6. Làm thế nào để định kỳ chạy một nhiệm vụ trong các emacs?
- 7. Làm cách nào để tham khảo dịch vụ đang chạy?
- 8. Làm cách nào để lệnh bash chạy theo định kỳ?
- 9. Cách request.getPathInfo() trong phương thức dịch vụ trả về null?
- 10. Lệnh gọi phương thức trong một dịch vụ Windows
- 11. cách ngăn dịch vụ chạy lại nếu đã chạy android
- 12. Làm cách nào để gửi KeyEvents thông qua dịch vụ phương thức nhập vào một Hộp thoại hoặc menu Spinner?
- 13. Làm cách nào để xác định phương thức nào được gọi trong phương thức?
- 14. Gọi phương thức web từ cùng một dịch vụ web
- 15. Cách xác định tên và tham số của phương thức trong dịch vụ web wsdl
- 16. Làm thế nào để chạy một exe từ dịch vụ windows và ngừng dịch vụ khi quá trình exe thoát?
- 17. Làm cách nào để truy cập một phương thức từ một bình bên ngoài khi chạy?
- 18. Android - Dịch vụ nền định kỳ - Lời khuyên
- 19. Cách lên lịch một tác vụ định kỳ trong Java?
- 20. Làm cách nào để tôi có thể chạy tác vụ định kỳ cần tây từ vỏ theo cách thủ công?
- 21. Làm thế nào để bắt đầu nhiệm vụ nền chạy dài trong dịch vụ android
- 22. Phương thức khởi động của Dịch vụ WCF ở đâu?
- 23. Phương thức dịch HTML5, cách đặt lại về mặc định?
- 24. Quy ước đặt tên cho phương thức dịch vụ
- 25. Cách chạy dịch vụ WCF trên một cổng cụ thể
- 26. Gọi phương thức dịch vụ WCF thông qua trình duyệt
- 27. Chạy chức năng định kỳ trong giao thức bị xoắn
- 28. Nút gửi Rails: Làm cách nào để nút chạy một phương thức nhất định khi được nhấp?
- 29. Tôi làm cách nào để chạy một phương thức tải trang trong MVC3?
- 30. Chạy phương thức chỉ một lần ngay từ đầu trước khi bất kỳ thử nghiệm nào được chạy trong PyUnit
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
Đ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ả. –
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