Tôi có hoạt động với một số Handlers
đang được thực hiện trong khoảng thời gian không quá 5 phút. Hoạt động này được khởi chạy từ BroadcastReceiver
và có thể được khởi chạy khi màn hình tắt để người dùng lấy điện thoại và nhận đầu vào của người dùng, khi điều này xảy ra, hoạt động onPause()
được gọi để chắc chắn CPU đang ở chế độ ngủ. Tôi chưa đặt hoạt động để bật màn hình vì tôi muốn tiết kiệm pin nhiều nhất có thể.Một phiên bản Handler có bị trì hoãn khi CPU không hoạt động không?
Tôi đã thử nghiệm nó với điện thoại của mình và hoạt động thực sự tốt, trong khi màn hình tắt tất cả Handlers
thực thi tất cả mã họ phải chạy. Nếu tôi bật và tắt màn hình trong khi hoạt động mở thì mọi thứ hoạt động tốt.
Bây giờ, tôi đã đọc ở khắp mọi nơi rằng một số thiết bị không hoạt động như mong đợi khi màn hình tắt và CPU ngủ, hầu hết các lần với gia tốc kế. Bây giờ câu hỏi của tôi là, tôi cần phải có được một WakeLock
để CPU không ngủ trong khi hoạt động của tôi được mở? Tôi thực sự muốn biết điều này bởi vì, như tôi đã nói trước đây, tôi không muốn 'lãng phí' pin bằng cách mua một chiếc đắt tiền WakeLock
.
Tôi muốn có câu trả lời chi tiết về một người thực sự biết cách hoạt động của nó.
Và tại sao bạn sử dụng Hoạt động để thực hiện các tác vụ nền? Một hoạt động được sử dụng để hiển thị mọi thứ và không chạy các tác vụ. Bạn đã xem xét Dịch vụ chưa? – tolgap
Không không, hoạt động không thực hiện các tác vụ nền. Là một hoạt động mở ra với một Broadcast Receiver đang chờ người dùng kiểm tra điện thoại và nhìn thấy nó, nhưng tôi không muốn thêm cờ 'KEEP_SCREEN_ON', đó là lý do tại sao đôi khi hoạt động được mở với màn hình tắt (hoặc màn hình tắt trong khi hoạt động đang mở). –