25. 04. 2018
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í“.