My AppWidgetProvider
(tất nhiên là BroadcastReceiver
) được đăng ký để nhận CONNECTIVITY_CHANGE
, để tôi có thể cập nhật tiện ích ngay khi mạng được khôi phục (mặc dù chỉ khi được yêu cầu) cập nhật đã bị bỏ lỡ do thiếu kết nối).Android N: xử lý thiếu CONNECTIVITY_CHANGE
Nhưng như được đặt ra here, điều này sẽ không còn khả dụng trong Android N. Đề xuất này là sử dụng JobScheduler
, cho phép bạn chỉ định Công việc sẽ chỉ chạy khi được kết nối với mạng theo phương pháp .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.
Tuy nhiên, tôi không thể thấy cách sử dụng này để tái tạo hành vi mong muốn của mình. Dường như với tôi rằng phương thức .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
sẽ khiến Công việc không chạy ở tất cả nếu không có mạng tại thời điểm Công việc được lên lịch và không phải là khiến Công việc phải kiên nhẫn chờ đợi cho đến khi có mạng và sau đó chạy (đó là những gì tôi cần).
Vì vậy, làm cách nào để giữ lại hành vi tôi cần, với Android N?
Bạn cũng có thể sử dụng bộ điều phối Firebase nếu muốn. Nó tương thích ngược. – Embydextrous
Ngoài ra, bạn có thể tiếp tục công việc qua khởi động lại thiết bị. – Embydextrous