Por que o ContentResolver.requestSync não aciona uma sincronização?
Estou tentando implementar o padrão Adaptador de sincronização de provedor de conteúdo, conforme discutido emGoogle IO - slide 26. Meu provedor de conteúdo está funcionando e minha sincronização funciona quando eu o aciono do aplicativo Dev Tools Sync Tester, no entanto, quando eu chamo ContentResolver.requestSync (conta, autoridade, pacote) do meu ContentProvider, minha sincronização nunca é acionada .
ContentResolver.requestSync(
account,
AUTHORITY,
new Bundle());
Edit - snippet de manifesto adicionado Meu xml de manifesto contém:
<service
android:name=".sync.SyncService"
android:exported="true">
<intent-filter>
<action
android:name="android.content.SyncAdapter" />
</intent-filter>
<meta-data android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter" />
</service>
--Edita
My syncadapter.xml associado ao meu serviço de sincronização contém:
<?xml version="1.0" encoding="utf-8"?>
<sync-adapter xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="AUTHORITY"
android:accountType="myaccounttype"
android:supportsUploading="true"
/>
Não tenho certeza de qual outro código seria útil. A conta passada para requestSync é de "myaccounttype" e a AUTHORITY passada para a chamada corresponde ao meu adaptador syc xml.
ContentResolver.requestSync é a maneira correta de solicitar uma sincronização? Parece que a ferramenta testador de sincronização se liga diretamente ao serviço e chama a sincronização inicial, mas isso parece anular o propósito de integrar-se à arquitetura de sincronizaçã
Se essa é a maneira correta de solicitar uma sincronização, por que o testador de sincronização funcionaria, mas não a minha chamada para ContentResolver.requestSync? Preciso passar algo no pacote?
Estou testando no emulador em dispositivos executando 2.1 e 2.