2017-04-20 4 views
0

GoogleのサンプルでBasicSyncAdapterの例に従っていますが、comment out the call to addPeriodicSync() function in the codeの場合、デフォルトの定期同期(同期間隔86400秒または24時間)が作成されるのはなぜですか?addPeriodicSync()を呼び出していないのにSyncAdapterがデフォルトの定期的な同期を作成するのはなぜですか?

SyncAdapterとスタブコード(SyncService、Authenticatorアカウントなど)を作成しても、そのデフォルトの同期間隔で定期的な同期が作成されることはまったくわかりません。

私の質問:このようなデフォルトの定期的な同期がなくてもSyncAdapterを作成できますか?

ありがとうございました。

ところで、これが私が定期的な同期の存在を検出する方法です。

java.util.List<PeriodicSync> periodicSyncsList = ContentResolver.getPeriodicSyncs(myaccount, CONTENT_AUTHORITY); 
Log.d(TAG, "Number of syncs in the periodicSyncsList = " + periodicSyncsList.size()); 
for (PeriodicSync p : periodicSyncsList) { 
    Log.d(TAG, p.toString()); 
} 

答えて

0

定期的な同期の設定は、永続的な操作のようです。一度設定されると、ContentProvider.removePeriodicSyncに電話をかけるか、アプリをアンインストールするまで有効です。

これは、ContentProvider.addPeriodicSyncがそれを取り除くのに役立たないとコメントすることを意味します。 ContentProvider.addPeriodicSyncに電話をかけずにアプリをアンインストールしてもう一度実行してみてください。定期的な同期を無効にする必要があります。

+0

同意しますが、この定期的な同期を作成するステートメントまたは操作は何ですか? Wierdlyかどうか、なぜドキュメントにこれについての言及がありません:( – PCoder

+0

'ContentProvider.addPeriodicSync'を一度呼び出すだけで登録すれば十分です。ドキュメントが非常に細くて改善できると私は同意します –

+0

私の質問は、「addPeriodicSync()を呼び出すことなく定期的な同期がどうして起こるのでしょうか」ということです。私がそのコード行をコメントすると(私が質問で指摘するように)、方法はありません'Content.addPeriodicSync'を呼び出しています。 – PCoder

関連する問題