2015-02-24 13 views
12

Durante il tentativo di comprendere il framework di Android SyncAdapter/ContentProvider, una cosa mi sfugge ancora. Non capisco perché ContentProvider necessiti di android:syncable="true" da definire nel manifest.android: syncable = true per un ContentProvider?

Perché un ContentProvider deve sapere se verrà utilizzato da un SyncAdapter?

I documenti Google dicono: "Il flag consente al framework dell'adattatore di sincronizzazione di effettuare trasferimenti di dati con il fornitore di contenuti, ma i trasferimenti avvengono solo se li si fa esplicitamente."

Vuol dire che se non specificare android:syncable="true", non posso utilizzare il ContentProvider nel SyncAdapter s' onPerform? Se è così, come può la struttura imporre anche una cosa del genere?

Qualcuno può aiutarmi a far luce su questo argomento?

Grazie

+1

possibile duplicato di [ContentProvider non verrà visualizzato nell'area Dati e sincronizzazione] (http://stackoverflow.com/query estions/5619101/contentprovider-wont-show-up-in-data-synchronization-area) – Gattsu

+0

Quindi stai dicendo che senza 'syncable = true', non apparirà nulla nell'area Account? Ho provato a impostarlo esplicitamente su 'false' ed è ancora lì ... – giladgo

+1

Buona domanda, chiedendomi questo. – Daniel

risposta

1

Un ContentProvider non ha bisogno android:syncable al suo associato SyncAdapter.

E si chiede:

Questo significa che se non si specifica Android: sincronizzabili = "true", non posso utilizzare il ContentProvider nel onPerform del SyncAdapter?

Questo non è quello che significa.

Dalla doc, android:syncable definisce

o meno i dati sotto il controllo del fornitore di contenuti deve essere sincronizzato con i dati sul server

per quanto ne so, è possibile definire un ContentProvider senza SyncAdapter - il contrario è falso, vedere anche What should I use Android AccountManager for?

Problemi correlati