Benötigen Google Talk und Play Store immer noch eine Hintergrundsynchronisierung für Ice Cream Sandwich?

Als ich Android-Versionen bis 2.x verwendet habe, erforderten einige Apps wie Google Talk und Android Market (jetzt Play Store), dass die Hintergrundsynchronisierung über Einstellungen -> Konto und Synchronisierung -> Hintergrunddaten aktiviert werden musste . Ich habe kürzlich ein Upgrade auf Ice Cream Sandwich durchgeführt und festgestellt, dass sowohl Google Talk als auch der Play Store jetzt auch funktionieren, wenn diese Einstellung deaktiviert ist.

Benötigen solche Apps immer noch eine Hintergrundsynchronisierung, möglicherweise auf eine Weise, die nicht mehr durch eine für den Benutzer zugängliche Einstellung gesteuert wird?

Antworten (2)

Ja, Hintergrunddaten sind seit Ice Cream Sandwich immer aktiviert. Siehe den Hinweis in der Dokumentation für android.net.ConnectivityManager.getBackgroundDataSetting():

Ab dem ICE_CREAM_SANDWICHhängt die Verfügbarkeit von Hintergrunddaten von mehreren kombinierten Faktoren ab, und diese Methode gibt immer wahr zurück. Wenn keine Hintergrunddaten verfügbar sind, getActiveNetworkInfo()wird stattdessen jetzt getrennt angezeigt.


Vending (eigentlich der interne Name für Android Market com.android.vending) wird verwendet C2DM, um Installationsanforderungen zu erhalten (sehen Sie sich das Anwendungsmanifest an; selbst auf ICS hat es immer noch c2dm-Empfänger). AFAIK, C2DM funktioniert nur, wenn Hintergrunddaten verfügbar sind.

Vor einiger Zeit habe ich irgendwo einen Blogbeitrag gelesen (den ich leider gerade nicht finde), in dem erklärt wurde, wie der Android Market (der Beitrag stammte, bevor er umbenannt wurde) funktionierte. IIRC, selbst wenn Sie darum gebeten haben, eine Anwendung direkt auf Ihrem Gerät zu installieren (statt indirekt über die Website https://market.android.com/ ), hat es lediglich eine Anfrage an die Google-Server gesendet, die dann gesendet wurden Ihr Gerät (über C2DM) eine Installationsanfrage. Dies erklärt, warum Vending Hintergrunddaten benötigt – es kann nichts tun, ohne Anfragen über C2DM von den Google-Servern empfangen zu können.

Ich weiß nichts über Google Talk, aber nach dem, was ich gehört habe, hat es C2DM verwendet, bevor C2DM der Öffentlichkeit zugänglich war. Auch dies würde erklären, warum Hintergrunddaten benötigt werden, um zu funktionieren.

AFAIK, die Hintergrundsynchronisierung ist vollständig von Hintergrunddaten getrennt, abgesehen von der Tatsache, dass sie offensichtlich nicht im Hintergrund synchronisiert werden kann, wenn Hintergrunddaten deaktiviert sind, und der Tatsache, dass Sie sie innerhalb des Synchronisierungsbildschirms in der Einstellungsanwendung ändern können.

Ich habe ein Samsung Galaxy Nexus mit ICS 4.0.4. Wenn ich zum Bildschirm Einstellungen->Konten & Synchronisierung navigiere und ein Konto auswähle (insbesondere das Konto, das ich für Google Talk und den Google Play Store verwende), sind diese beiden Apps nicht in der Liste der Apps vorhanden, die für den Hintergrund aktiviert / deaktiviert werden können Synchronisation. Wenn diese Apps eine Hintergrundsynchronisierung durchführen, ist es keine vom Benutzer einstellbare Option mehr, sie zu deaktivieren.

Die beiden waren nie da.