2013-02-24 6 views
5

SyncAdapterはWifiでのみ実行したいです。 onPerformSyncの冒頭に、Wi-Fiが存在するかどうかを確認できます。そうでない場合は、WIFIが利用可能になるまで延期したいと思います。SyncAdapter on WIFI

私はsyncresult.delayUntilを知っていますが、同期アダプタは無駄にx分ごとに呼び出されますが、たとえば1日中は無線が無効になる可能性があります。また、triggerSyncを直接使用すると、delayUntilは読んだことがありません。

ここで最善のアプローチは何ですか? Evernoteのようなアプリは、WIFIでのみ同期するこのオプションを持っているようです。

答えて

2

SyncAdapterを定期的に実行しないでください。 、

<intent-filter> 
<action android:name="android.net.wifi.WIFI_STATE_CHANGED"/> 
<action android:name="android.net.wifi.STATE_CHANGE"/> 
</intent-filter> 

BroadcastReceiverコードでのWi-Fiがオンになったかどうかをチェックし、もしそうなら、呼び出し:

代わりに、このフィルタを使用してアプリにBroadcastReceiverを追加

ContentResolver.requestSync(<Your account, <Your authority>, extras); 

を要求するにはあなたのSyncAdapterを実行するAndroid。

+2

この方法をすべてのアプリケーションで使用すると、ユーザーのネットワークエクスペリエンスが損なわれます。 –

関連する問題