2010-06-25 17 views
5

Tôi có một tiện ích 4x4 và tôi muốn cập nhật một phần nhỏ của nó sau mỗi 15-20 giây. Rõ ràng tôi không muốn nó được cập nhật khi điện thoại ở chế độ chờ. Tiện ích cũng cần phản hồi một số sự kiện hệ thống khác với bộ hẹn giờ của tôi. Vì vậy, đó là lựa chọn tốt nhất?Cách tốt nhất để cập nhật tiện ích Android mỗi 20-30 giây: Trình xử lý, Dịch vụ hoặc Báo thức?

  • Một AlarmManager: đẹp nhưng có lẽ CPU chuyên sâu nếu nó cần phải được chạy mỗi 20 giây
  • Một Handler: ánh sáng, nhưng tôi không biết làm thế nào để ngăn chặn nó khi điện thoại ngủ
  • Một dịch vụ: cũng ở đây i cần phải hiểu cách dừng điện thoại khi điện thoại ngủ

Tôi cũng sẽ cần cập nhật một phần nhỏ tiện ích của mình mà không cập nhật tất cả khu vực màn hình, điều này có thể không?

Cảm ơn mọi người.

Trả lời

3

Tôi có tiện ích 4x4 và tôi muốn cập nhật một phần nhỏ trong mỗi 15-20 giây.

Please make this optional or configurable.

Vì vậy, lựa chọn nào là tốt nhất?

A Handler không liên quan gì đến tiện ích ứng dụng.

Dịch vụ luôn chạy là bad for business và là loại điều khiến người dùng tấn công bạn bằng các kẻ giết nhiệm vụ.

Lựa chọn tốt nhất là AlarmManager.

Thành thật mà nói, câu trả lời hay nhất là "không cập nhật một phần nhỏ trong mỗi 15-20 giây".

+0

AlarmManager có vẻ nhiều CPU chuyên sâu hơn một dịch vụ trong bản cập nhật 15-20 giây, giả sử bạn cần tạo tiện ích đồng hồ kỹ thuật số, làm cách nào để cập nhật đáng tin cậy mà không cần sử dụng dịch vụ? Ngoài ra bài viết bạn đã liên kết dường như chỉ ra rằng ưu tiên của một hành động AlarmManager có thể quá cao. Vấn đề duy nhất cho dịch vụ là dừng đáng tin cậy khi màn hình tắt. – JohnUopini

+1

"giả sử bạn cần tạo tiện ích đồng hồ kỹ thuật số, cách bạn có thể cập nhật nó một cách đáng tin cậy mà không cần sử dụng dịch vụ" - bạn không viết nó làm tiện ích, nhưng viết ứng dụng màn hình chính tùy chỉnh có đồng hồ kỹ thuật số. "Ngoài ra bài viết bạn đã liên kết dường như chỉ ra rằng ưu tiên của một hành động' AlarmManager' có thể quá cao. " - đó là lý do tại sao nếu bạn đang làm công việc quan trọng, bạn ủy quyền cho một 'IntentService' bắt đầu, thực hiện điều gì đó trong một luồng nền và biến mất. – CommonsWare

+1

"Vấn đề duy nhất cho dịch vụ là dừng đáng tin cậy khi màn hình tắt." - và bộ nhớ nó chiếm. Và thực tế là người dùng sẽ tấn công bạn với kẻ giết người nhiệm vụ vì bộ nhớ cần thiết (hoặc ít nhất là bộ nhớ cảm nhận nó chiếm). Và thực tế là Android sẽ chấm dứt dịch vụ của bạn sau một thời gian (ngày càng tăng với Android 2.2+), bởi vì Android đang phản hồi người dùng trả lời cho các nhà phát triển viết các dịch vụ đời đời. Như tôi đã viết ban đầu, câu trả lời tốt nhất là "không cập nhật một phần nhỏ của nó mỗi 15-20 giây". – CommonsWare

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