Android SyncAdapter周波数
-
21-12-2019 - |
質問
特定のデータをクイックチェックするために数秒ごとに実行する必要があるシンコアダプターを構築しようとしています。 SyncAdapter
を実行するには、次のコードを使用しています。ContentResolver.setIsSyncable(account, CONTENT_AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, CONTENT_AUTHORITY, true);
.
と同期はTRIGERRED CORRECTYですが、10分ごとに1回だけ呼ばれています。 Androidトレーニングに基づく http://developer.android.com/training. /sync-adapters/running-sync-adapter.html
ネットワーク接続が利用可能な場合は、Androidシステム デバイスのTCP / IPを保持するために数秒ごとにメッセージを送信します。 接続が開きます。このメッセージはそれぞれのContentResolverにも行われます アプリ。 setsyncautomaltically()を呼び出して、Syncアダプタを実行できます。 ContentResolverがメッセージを受信するたびに。
ネットワーク接続が利用可能ですが、WiFiではなく3G接続しかありません - これは長い待っていますか? 私は10秒ごとに私のアダプタを実行する方法を教えてください。 私はすでに定期的な同期を使ってみました
ContentResolver.addPeriodicSync(account, CONTENT_AUTHORITY, new Bundle(), 10);
.
しかし、それは10分ごとに走っています。
解決
あなたはAndroid SyncManager
の犠牲者です。このシナリオを検討してください。アプリケーションには10分ごとに同期しますが、携帯電話にアプリケーションをインストールしましたが、マネージャーに10分の間マネージャーに尋ねてください。私のアプリケーションの同期操作は、大量のデータの転送を含み、したがって、利用可能なインターネット接続の全体(またはほとんど)帯域幅を使用しています。Smart SyncManager
は、前の実行が完了するまで他の同期プロセスを開始するのが賢明ではないことがわかります。