Có, dữ liệu nền luôn được bật kể từ Ice Cream Sandwich. Xem ghi chú trong tài liệu cho android.net.ConnectivityManager.getBackgroundDataSetting()
:
Kể từ khi ICE_CREAM_SANDWICH
có sẵn dữ liệu nền phụ thuộc vào một số yếu tố kết hợp và phương pháp này sẽ luôn trả về đúng. Thay vào đó, khi dữ liệu nền không có sẵn, getActiveNetworkInfo()
bây giờ sẽ xuất hiện ngắt kết nối.
Vending (tên nội bộ của Android Market, trên thực tế com.android.vending
) sử dụng C2DM
để nhận các yêu cầu cài đặt (hãy xem bảng kê khai ứng dụng của nó; ngay cả trên ICS, nó vẫn có các máy thu c2dm). AFAIK, C2DM chỉ hoạt động khi có sẵn dữ liệu nền.
Cách đây một thời gian, tôi đã đọc một bài đăng blog ở đâu đó (thật không may là tôi không tìm thấy ngay bây giờ) giải thích cách Android Market (bài đăng từ trước khi được đổi tên) hoạt động. IIRC, ngay cả khi bạn yêu cầu cài đặt ứng dụng trực tiếp trên thiết bị của mình (thay vì gián tiếp thông qua trang web https://market.android.com/ ), tất cả những gì đã làm là gửi yêu cầu đến máy chủ Google, sau đó gửi thiết bị của bạn (thông qua C2DM) yêu cầu cài đặt. Điều này giải thích tại sao Vending cần dữ liệu nền. Nó không thể làm bất cứ điều gì mà không thể nhận yêu cầu qua C2DM từ các máy chủ của Google.
Tôi không biết về Google Talk, nhưng từ những gì tôi đã nghe, nó đã sử dụng C2DM kể từ trước khi C2DM có sẵn cho công chúng. Một lần nữa, điều này sẽ giải thích tại sao nó cần dữ liệu nền để làm việc.
AFAIK, đồng bộ hóa nền hoàn toàn tách biệt với dữ liệu nền, ngoài thực tế là rõ ràng nó không thể đồng bộ hóa trong nền nếu dữ liệu nền bị tắt và thực tế là bạn có thể thay đổi nó từ trong màn hình đồng bộ hóa trong ứng dụng cài đặt.