Требуется ли для Google Talk и Play Store синхронизация в фоновом режиме на Ice Cream Sandwich?

Когда я использовал версии Android до 2.x, некоторые приложения, такие как Google Talk и Android Market (теперь Play Store), требовали активации фоновой синхронизации через « Настройки » -> « Учетная запись и синхронизация » -> «Фоновые данные » . Недавно я обновился до Ice Cream Sandwich и заметил, что и Google Talk, и Play Store теперь работают и при отключении этой настройки.

Требуют ли такие приложения фоновой синхронизации, возможно, способом, который больше не контролируется доступной пользователю настройкой?

Ответы (2)

Да, фоновые данные всегда включены, начиная с Ice Cream Sandwich. См. примечание в документации для android.net.ConnectivityManager.getBackgroundDataSetting():

Начиная с ICE_CREAM_SANDWICH, доступность фоновых данных зависит от нескольких факторов, и этот метод всегда будет возвращать значение true. Вместо этого, когда фоновые данные недоступны, getActiveNetworkInfo()теперь они будут отображаться отключенными.


Vending (на самом деле внутреннее название Android Market com.android.vending) использует C2DMдля получения запросов на установку (взгляните на его манифест приложения; даже на ICS у него все еще есть приемники c2dm). Насколько я знаю, C2DM работает только при наличии фоновых данных.

Некоторое время назад я где-то прочитал сообщение в блоге (которое, к сожалению, сейчас не нахожу), объясняющее, как работает Android Market (сообщение было до того, как его переименовали). IIRC, даже когда вы попросили установить приложение непосредственно на свое устройство (а не косвенно через веб-сайт https://market.android.com/ ), все, что он сделал, это отправил запрос на серверы Google, которые затем отправили ваше устройство (через C2DM) запрос на установку. Это объясняет, почему Вендингу нужны фоновые данные — он ничего не может сделать, не имея возможности получать запросы через C2DM от серверов Google.

Я не знаю о Google Talk, но из того, что я слышал, он использовал C2DM еще до того, как C2DM стал общедоступным. Опять же, это объясняет, почему для работы нужны фоновые данные.

Насколько мне известно, фоновая синхронизация полностью отделена от фоновых данных, за исключением того факта, что, очевидно, она не может синхронизироваться в фоновом режиме, если фоновые данные отключены, и того факта, что вы можете изменить ее на экране синхронизации в приложении настроек.

У меня Samsung Galaxy Nexus с ICS 4.0.4. Когда я перехожу к экрану «Настройки» -> «Учетные записи и синхронизация» и выбираю учетную запись (в частности, учетную запись, которую я использую для Google Talk и магазина Google Play), эти два приложения отсутствуют в списке приложений, которые можно включить / отключить в фоновом режиме. синхронизация. Если эти приложения выполняют фоновую синхронизацию, пользователь больше не может отключить ее.

Этих двоих никогда не было рядом.