2016-07-18 23 views
6

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?

Trả lời

0

Tôi đang sử dụng Trình lập lịch biểu công việc và không phụ thuộc vào việc mạng có khả dụng hay không trong khi lên lịch công việc. Nó cung cấp một số điều kiện nhất định và khi những điều kiện đó là công việc thỏa mãn được lên kế hoạch. Bạn có thể thiết lập một công việc lặp đi lặp lại và cũng xác định khoảng cách thời gian tối thiểu giữa các công việc. Ví dụ như bất cứ khi nào tôi kết nối điện thoại của mình để sạc PlayStore, hãy bắt đầu cập nhật ứng dụng khi Công việc có giới hạn tính phí.

Nếu bạn lên lịch một công việc và điều kiện không được đáp ứng, nó sẽ lên lịch khi mạng khả dụng. Hãy thử ngắt kết nối mạng và mở một hồ sơ cá nhân trên Facebook. Nó sẽ yêu cầu bạn tải hồ sơ về tính khả dụng của mạng. Bây giờ, kết nối với mạng và bạn sẽ nhận được thông báo khi hồ sơ được tải.

+0

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

+0

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

0

cố gắng thêm google ping để thay đổi mạng sẽ giúp bạn cho thay đổi mạng và tất cả nguyên nhân tôi có cùng vấn đề khi tôi đang phát triển với dịch vụ ổ cắm. Vì vậy, có thể nó cũng sẽ giúp bạn.

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