31.10.2011

Android má skvěle zpracovanou podporu pro synchronizaci dat server <-> klient. Implementace sice není úplně triviální a dokumentace dokonalá, leč odvedená práce se určitě vyplatí.

Pokud chcete vědět více o tom, jak fungují v Androidu všechny ty SyncAdaptéry, ContentResolvery, ContentProvidery a AccountAuthenticatory projděte si příklad Sample Sync Adapter přímo od Google.

Pokud už máte synchronizaci implementovanou, čas od času je potřeba ji spustit na pokyn uživatele. Z dokumentace není úplně zřejmé jak to udělat, ale je to jenom pár řádků kódu:

Bundle bundle = new Bundle();
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_FORCE, true);
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
ContentResolver.requestSync(null, MyContentProvider.getAuthority(), bundle);

Po zavolání výše uvedeného kódu dojde k okamžitému spuštění synchronizace. Synchronizace se díky volbě „SYNC_EXTRAS_MANUAL“ spustí i pokud má uživatel zakázaná „Data na pozadí“.

Vladislav Skoumal
SKOUMAL CEO