2012-03-20 11 views
2

私はSyncAdapterを使用してリモートサーバーにREST呼び出しを行い、その後、コンテンツプロバイダを使用して更新をローカルSQLLite DBに保存するアプリケーションを持っています。システムによってSyncAdapterがどのようにトリガされるのですか?

私はその後、私のアダプタを選択し、とき(頻度)(onPerformSyncを作るために)どのようにシステムが知っているんコール

をトリガするために再同期ボタンを使用して、アカウント& Syncを行くことによって呼び出しをトリガすることができますSyncAdapterを呼び出しますか?

RESTコールが解決するサービスにログオンしていますが、上記のように手動で行う場合を除き、コールは表示されません。

ところで、私は、現時点ではエミュレータで実行しています、私はまだ

答えて

1

あなたのContentProviderからデバイスにこれをインストールしていない、あなたのSyncAdapterデータセットへの変更があった知らせなければなりません。 。。

あなたは()メソッドを挿入しますContentProviders内の例えば notifyChange()

を呼び出すことによって、次の操作を行います。

のgetContext()getContentResolver()notifyChange(rowUri、NULL);

すぐには同期できないかもしれませんが、これはSyncAdaptersの動作方法です。システムは、いつ同期するのがよいかを決定する。通常、私の経験では比較的速く発生します。もちろん、毎回データベース内で変更が発生するたびにsyncを同期させたくないかもしれませんが、コードをperformSyncに入れて同期の頻度を制御することができます。

これは誰かを助けることを願っています:)

関連する問題