8

私はsyncAdapterの初心者です。私はグーグルIOビデオ(ここで講義のプレゼンテーション)を見ました、そして私はそれについての2つのチュートリアル(ここここ)を読みました。

チュートリアルのコードも試しましたが、syncAdapterを正しく実装する方法がわからないのはイライラします。

私が信じているのは、いくつかの設定(マニフェストまたはxmlファイルのいずれか)が間違っているということですが、理由がわかりません。

同期アカウントの追加を許可し、アイコンで表示することに成功しました。

しかし、私はそれらが発生する理由を理解できないいくつかの奇妙な問題に直面しています:

  1. アカウントの同期を許可します。エンドユーザーは同期ボタンを押すことができません。また、アカウントの追加時にそのようなものを追加しようとしても、自動同期されないようです。

  2. アカウントを追加すると、エンドユーザーはアカウントの奇妙な説明「res / xml/authenticator.xml」を見ることができます。どこに設定されているかわからない。

  3. アカウントをクリックすると(追加された後)、空のリストが表示されます(これは確率です。そこにアイテムを追加するにはどうすればよいですか?将来、FacebookやGmailとも同期する必要がありますが、イベントを成功させることはできませんこのリストに自分のcontentProviderを追加します。

実際の承認を行う必要はないので、AccountAuthenticatorActivityから拡張するアクティビティ内で代わりに次のコードを使用します。

accountManager.addAccountExplicitly(account, PASSWORD, null);
final Intent intent = new Intent();
intent.putExtra(AccountManager.KEY_ACCOUNT_NAME, USERNAME);
intent.putExtra(AccountManager.KEY_ACCOUNT_TYPE, accountType);
setAccountAuthenticatorResult(intent.getExtras());
setResult(RESULT_OK, intent);
finish();

また、ここで説明されているものを使用して、自動同期を設定し、同期を有効にしようとしました。

4

1 に答える 1

0

約1)はい、インターネットに接続していないと同期できません。その理由は、(同期アダプターの適切な定義はありませんが)同期アダプターは、バックボーンをローカルデータと同期するために使用されることになっているコンポーネントであるためです。接続がない場合、同期を開始しても意味がありません。実際、これは理論上のみ当てはまります。バックボーンデータベースがなくてもsybcアダプターを開発する必要があったからです。

私がしたことは、同期アダプターがトリガーされたときに呼び出され、接続がない場合でも同期が必要なときに自分のアプリケーションによって呼び出されるコンポーネントを作成することでした。

于 2012-07-25T17:19:44.417 に答える