SyncAdapterで同期時にSyncアイコンを表示したい。 出来ればすぐに。

SyncAdapterを実装してrequestSync()したときに、通知領域にSyncアイコンが表示される条件。

extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
してから、
ContentResolver.requestSync(mAccount, AUTHORITY, extras);
とすればいい。 

SYNC_EXTRAS_MANUALを使わないと、
authorityにCALLER_IS_SYNCADAPTER = trueが付加されててかつ、
ContentResolver経由でローカルのDBを更新している処理が一定時間以上かかると
適当なタイミングで表示される。

これだとリモートデータにアクセスしているときや、ローカルデータへのアクセス時間が短いときはSyncアイコンが表示されない。
リファレンスのどこにもこんな説明はないようだが。。。

ま、そんな感じ。

コメント

このブログの人気の投稿

Execノードを使う

SendGridのX-SMTPAPIヘッダの使い方(Section Tags、Substitution Tags編)

Joinノードを使う(その4)