Offline szinkronizálás engedélyezése androidos mobilalkalmazáshoz
Áttekintés
Ez az oktatóanyag az Androidhoz készült Azure Mobile Apps offline szinkronizálási funkcióját tartalmazza. Az offline szinkronizálás lehetővé teszi a végfelhasználók számára, hogy akkor is kommunikálnak a mobilalkalmazásokkal ( adatok megtekintése, hozzáadása vagy módosítása) akkor is, ha nincs hálózati kapcsolat. A módosításokat a rendszer egy helyi adatbázisban tárolja. Miután az eszköz újra elérhető, a rendszer szinkronizálja ezeket a módosításokat a távoli háttéralkalmazással.
Ha most először használja az Azure Mobile Apps, először az Android-alkalmazás létrehozása oktatóanyagot kell végrehajtania. Ha nem használja a letöltött gyors indítási kiszolgálóprojektet, hozzá kell adni az adatelérési bővítménycsomagokat a projekthez. További információ a kiszolgálóbővítmény-csomagokról: Az Azure-hoz készült .NET háttérkiszolgálói SDK Mobile Apps.
Az offline szinkronizálási funkcióval kapcsolatos további információkért tekintse meg az Offline adatszinkronizálás az Azure Mobile Apps.
Az alkalmazás frissítése az offline szinkronizálás támogatásához
Az offline szinkronizálással (az IMobileServiceSyncTable felület használatával) egy szinkronizálási táblába olvashat és írhat, amely az eszközön található SQLite-adatbázis része.
Az eszköz és az Azure Mobile Services közötti módosítások leküldéséhez és leküldéséhez egy szinkronizálási környezetet (MobileServiceClient.SyncContext) kell használnia, amelyet a helyi adatbázissal inicializál az adatok helyi tárolására.
A
TodoActivity.java
fájlban megjegyzésbe kell tenni amToDoTable
szinkronizálási tábla meglévő definícióját, és a szinkronizálási tábla verziójának megjegyzésként való megjegyzésként való be- és megjegyzésbe való beprivate MobileServiceSyncTable<ToDoItem> mToDoTable;
A metódusban
onCreate
megjegyzésbe kell tenni a meglévő inicializálásátmToDoTable
, és a definíció megjegyzésként való felhagyása:mToDoTable = mClient.getSyncTable("ToDoItem", ToDoItem.class);
Megjegyzésként
refreshItemsFromTable
a definíciója megjegyzésként,results
és a definíció megjegyzésként való megjegyzésként való megjegyzésként való be- és megjegyzésként való megszűkülése:// Offline Sync final List<ToDoItem> results = refreshItemsFromMobileServiceTableSyncTable();
Megjegyzésként a definíciója
refreshItemsFromMobileServiceTable
.A definíciójának visszaiktálásának a nincs megszabadítása
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(); }
A definíciójának visszaiktálásának a nincs megszabadítása
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); }
Az alkalmazás tesztelése
Ebben a szakaszban a Wi-Fi bekapcsolt állapotban teszteli a viselkedést, majd kikapcsolja a Wi-Fi-t offline forgatókönyv létrehozásához.
Adatelemek hozzáadásakor a rendszer a helyi SQLite-tárolóban tárolja őket, de nem szinkronizálja őket a mobilszolgáltatással, amíg a Frissítés gombra nem kattint. Más alkalmazások esetében eltérő követelmények vonatkozhatnak arra vonatkozóan, hogy mikor kell szinkronizálni az adatokat, de bemutató célokból a felhasználó kifejezetten kéri azokat.
Amikor megnyomja ezt a gombot, elindul egy új háttérfeladat. Először lekultálja az összes módosítást a helyi tárolóba a szinkronizálási környezet használatával, majd lekért minden módosított adatot az Azure-ból a helyi táblába.
Offline tesztelés
Helyezze az eszközt vagy szimulátort repülőgépes üzemmódba. Ez offline forgatókönyvet hoz létre.
Adjon hozzá néhány ToDo elemet, vagy jelöln meg néhány elemet befejezettként. Zárja be az eszközt vagy a szimulátort (vagy zárja be az alkalmazást) és indítsa újra. Ellenőrizze, hogy a módosítások megőrzve vannak-e az eszközön, mert a helyi SQLite-tárolóban vannak tárolva.
Tekintse meg az Azure TodoItem tábla tartalmát egy olyan SQL eszközzel, mint a SQL Server Management Studio, vagy egy REST-ügyfél, például a Fiddler vagy a Postman. Ellenőrizze, hogy az új elemek nem szinkronizálva vannak-e a kiszolgálóval
+ 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*.
Kapcsolja be a Wi-Fi-t az eszközön vagy a szimulátorban. Ezután kattintson a Frissítés gombra .
Tekintse meg újra a TodoItem adatokat a Azure Portal. Meg kell jelenni az új és módosított TodoItems nak.
További források
- Kapcsolat nélküli adatszinkronizálás az Azure Mobile Apps megoldásban
- Cloud Cover: Offline szinkronizálás az Azure Mobile Services -ban (megjegyzés: a videó Mobile Services, de az offline szinkronizálás hasonlóan működik az Azure Mobile Apps)