android - manager - SyncAdapter solo en WIFI
android pc sync manager (1)
No configure su SyncAdapter
para que se ejecute periódicamente.
En su lugar, agregue un BroadcastReceiver
a su aplicación con este filtro:
<intent-filter>
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/>
<action android:name="android.net.wifi.STATE_CHANGE"/>
</intent-filter>
y en el código de BroadcastReceiver
, verifique si WiFi se activó, y si es así, llame al:
ContentResolver.requestSync(<Your account, <Your authority>, extras);
Para solicitar a Android que ejecute su SyncAdapter
.
Quiero ejecutar mi SyncAdapter
solo en Wifi. Al comienzo de onPerformSync
, puedo verificar si wifi está presente. Si no es así, quiero posponerlo hasta que haya WiFi disponible.
Sé de syncresult.delayUntil
pero eso significa que el adaptador de sincronización se inutiliza cada x minutos, aunque el wifi podría desactivarse, por ejemplo, durante todo el día. Además, por lo que he leído, delayUntil
no se aplica si usa triggerSync
directamente.
¿Cuál es el mejor enfoque aquí? Las aplicaciones como Evernote parecen tener esta opción de sincronización solo en WIFI.