Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Overzicht
In deze zelfstudie wordt de offlinesynchronisatiefunctie van Azure Mobile Apps voor Android besproken. Met offlinesynchronisatie kunnen eindgebruikers communiceren met een mobiele app, zoals het weergeven, toevoegen of wijzigen van gegevens, zelfs als er geen netwerkverbinding is. Wijzigingen worden opgeslagen in een lokale database. Zodra het apparaat weer online is, worden deze wijzigingen gesynchroniseerd met de externe back-end.
Als dit uw eerste ervaring is met Azure Mobile Apps, moet u eerst de zelfstudie Een Android-app maken voltooien. Als u het gedownloade snelstartserverproject niet gebruikt, moet u de uitbreidingspakketten voor gegevenstoegang toevoegen aan uw project. Zie Werken met de .NET-back-endserver-SDK voor Azure Mobile Apps voor meer informatie over serveruitbreidingspakketten.
Zie het onderwerp Offline Data Sync in Azure Mobile Apps voor meer informatie over de functie voor offlinesynchronisatie.
De app bijwerken ter ondersteuning van offlinesynchronisatie
Met offlinesynchronisatie leest en schrijft u vanuit een synchronisatietabel (met behulp van de IMobileServiceSyncTable-interface ), die deel uitmaakt van een SQLite-database op uw apparaat.
Als u wijzigingen tussen het apparaat en Azure Mobile Services wilt pushen en ophalen, gebruikt u een synchronisatiecontext (MobileServiceClient.SyncContext), die u initialiseert met de lokale database om gegevens lokaal op te slaan.
Commentaar
TodoActivity.java
bij de bestaande definitie vanmToDoTable
en verwijder het commentaar van de synchronisatietabelversie.private MobileServiceSyncTable<ToDoItem> mToDoTable;
Maak in de
onCreate
methode commentaar op de bestaande initialisatie vanmToDoTable
en verwijder opmerkingen bij deze definitie:mToDoTable = mClient.getSyncTable("ToDoItem", ToDoItem.class);
Zet in
refreshItemsFromTable
commentaar op de definitie vanresults
en haal de opmerking bij deze definitie weg:// Offline Sync final List<ToDoItem> results = refreshItemsFromMobileServiceTableSyncTable();
Markeer de definitie van
refreshItemsFromMobileServiceTable
.Verwijder commentaar bij de definitie van
refreshItemsFromMobileServiceTableSyncTable
:private List<ToDoItem> refreshItemsFromMobileServiceTableSyncTable() throws ExecutionException, InterruptedException { //sync the data sync().get(); Query query = QueryOperations.field("complete"). eq(val(false)); return mToDoTable.read(query).get(); }
Verwijder commentaar bij de definitie van
sync
:private AsyncTask<Void, Void, Void> sync() { AsyncTask<Void, Void, Void> task = new AsyncTask<Void, Void, Void>(){ @Override protected Void doInBackground(Void... params) { try { MobileServiceSyncContext syncContext = mClient.getSyncContext(); syncContext.push().get(); mToDoTable.pull(null).get(); } catch (final Exception e) { createAndShowDialogFromTask(e, "Error"); } return null; } }; return runAsyncTask(task); }
De app testen
In deze sectie test u het gedrag met WiFi en schakelt u wi-fi uit om een offlinescenario te maken.
Wanneer u gegevensitems toevoegt, worden deze bewaard in het lokale SQLite-archief, maar niet gesynchroniseerd met de mobiele service totdat u op de knop Vernieuwen drukt. Andere apps kunnen verschillende vereisten hebben voor wanneer gegevens moeten worden gesynchroniseerd, maar voor demodoeleinden laat deze zelfstudie de gebruiker expliciet een synchronisatieverzoek doen.
Wanneer u op die knop drukt, wordt een nieuwe achtergrondtaak gestart. Eerst worden alle wijzigingen die zijn aangebracht in de lokale opslag gepusht met behulp van de synchronisatiecontext, waarna alle gewijzigde gegevens van Azure naar de lokale tabel worden opgehaald.
Offline testen
Plaats het apparaat of de simulator in de vliegtuigmodus. Hiermee maakt u een offlinescenario.
Voeg enkele ToDo-items toe of markeer sommige items als voltooid. Sluit het apparaat of de simulator (of sluit de app geforceerd af) en start opnieuw. Controleer of uw wijzigingen zijn opgeslagen op het apparaat omdat deze zijn opgeslagen in het lokale SQLite-archief.
Bekijk de inhoud van de Azure TodoItem-tabel met een SQL-hulpprogramma zoals SQL Server Management Studio of een REST-client zoals Fiddler of Postman. Controleer of de nieuwe items niet zijn gesynchroniseerd met de server
+ For a Node.js backend, go to the [Azure portal](https://portal.azure.com/), and in your Mobile App backend click **Easy Tables** > **TodoItem** to view the contents of the `TodoItem` table. + For a .NET backend, view the table contents either with a SQL tool such as *SQL Server Management Studio*, or a REST client such as *Fiddler* or *Postman*.
Schakel Wi-Fi in op het apparaat of de simulator. Druk vervolgens op de knop Vernieuwen .
Bekijk de todoItem-gegevens opnieuw in Azure Portal. De nieuwe en gewijzigde TodoItems moeten nu worden weergegeven.
Aanvullende informatiebronnen
- Offline datasynchronisatie in Azure Mobile Apps
- Cloud Cover: Offlinesynchronisatie in Azure Mobile Services (opmerking: de video is beschikbaar in Mobile Services, maar offlinesynchronisatie werkt op een vergelijkbare manier in Azure Mobile Apps)