Попытка настроить адаптер/службу синхронизации для моего поставщика контента. Поставщик контента отлично работает, способный хранить данные без проблем.Android syncadapter onPerformSync не называется
У меня есть наблюдатель контента, который зарегистрирован в моем распознавателе контента, и метод onChange вызывается после изменения данных.
Но в журналах ничего не появляется после вызова observer.onИзменить. В observer.onChange я делаю вызов contentResolver.requestSync, но метод onPerformSync в моем адаптере синхронизации не вызывается.
Идеи?
syncadapter.xml
<sync-adapter
xmlns:android="http://schemas.android.com/apk/res/android"
android:contentAuthority="....contentproviderexample.provider"
android:accountType="....contentproviderexample"
android:userVisible="false"
android:supportsUploading="false"
android:allowParallelSyncs="false"
android:isAlwaysSyncable="true"/>
authenticator.xml
<account-authenticator
android:label="@string/app_name"
android:smallIcon="@mipmap/ic_launcher"
android:icon="@mipmap/ic_launcher"
android:accountType="....contentproviderexample"
xmlns:android="http://schemas.android.com/apk/res/android"/>
наблюдатель OnChange:
@Override
public void onChange(boolean selfChange, Uri uri) {
Log.d(PERSON_OBSERVER_TAG, "onChange: Calling requestSync");
contentResolver.requestSync(newAccount, PersonContract.CONTENT_AUTHORITY, Bundle.EMPTY);
}
манифеста:
<service android:name=".datasync.AuthenticatorService">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator"></action>
</intent-filter>
<meta-data
android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator"/>
</service>
<service android:name=".datasync.SyncService"
android:exported="true"
android:process=":sync">
<intent-filter>
<action android:name="android.content.SyncAdapter"/>
</intent-filter>
<meta-data
android:name="android.content.SyncAdapter"
android:resource="@xml/syncadapter">
</meta-data>
</service>
Поместите точку отладки в функцию onChange и, во-первых, убедитесь, что вызов выполняется. Если да, мы можем смотреть в будущее. Общая ошибка – Msk