Android: syncable = true для ContentProvider?
При попытке понять инфраструктуру Android SyncAdapter
/ContentProvider
одна вещь все еще ускользает от меня. Я не понимаю, почему ContentProvider нуждается в android:syncable="true"
для определения в манифесте.
Почему ContentProvider
должен знать, будет ли он использоваться из SyncAdapter
?
В документах Google говорится:
"Флаг позволяет инфраструктуре адаптера синхронизации выполнять передачу данных с поставщиком контента, но передача происходит только в том случае, если вы делаете это явно".
Означает ли это, что если я не укажу android:syncable="true"
, я не могу использовать ContentProvider
в SyncAdapter
onPerform
? Если да, то каким образом структура может даже обеспечить такую вещь?
Может кто-нибудь помочь мне пролить свет на эту тему?
Спасибо
Ответы
Ответ 1
A ContentProvider
не нуждается в android:syncable
к его ассоциированному SyncAdapter
.
И вы спрашиваете:
Означает ли это, что если я не укажу android: syncable = "true", я не могу использовать ContentProvider в SyncAdapter onPerform?
Это не то, что это значит.
В документе android:syncable
определяется
Следует ли синхронизировать данные под контролем поставщика контента с данными на сервере
AFAIK, вы можете определить ContentProvider
без SyncAdapter
- противоположное значение false, см. также Что я должен использовать AccountManager для Android?