Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Обзор
В этом руководстве рассматривается функция автономной синхронизации мобильных приложений Azure для Android. Автономная синхронизация позволяет конечным пользователям взаимодействовать с мобильным приложением — просматривать, добавлять или изменять данные, даже если сетевое подключение отсутствует. Изменения хранятся в локальной базе данных. После возврата устройства эти изменения синхронизируются с удаленной серверной частью.
Если это первый опыт работы с мобильными приложениями Azure, сначала необходимо выполнить руководство по созданию приложения Android. Если вы не используете скачанный проект сервера быстрого запуска, необходимо добавить пакеты расширений доступа к данным в проект. Дополнительные сведения о пакетах расширений сервера см. в статье Работа с пакетом SDK серверного сервера .NET для мобильных приложений Azure.
Дополнительные сведения о функции автономной синхронизации см. в статье автономной синхронизации данных в мобильных приложениях Azure.
Обновление приложения для поддержки автономной синхронизации
При автономной синхронизации вы считываете и записываете данные из таблицы синхронизации (с помощью интерфейса IMobileServiceSyncTable ), которая входит в базу данных SQLite на устройстве.
Для отправки и извлечения изменений между устройством и мобильными службами Azure используется контекст синхронизации (MobileServiceClient.SyncContext), который инициализируется локальной базой данных для хранения данных локально.
В
TodoActivity.javaполе закомментируйте существующее определениеmToDoTableи раскомментируйте версию таблицы синхронизации:private MobileServiceSyncTable<ToDoItem> mToDoTable;В методе
onCreateзакомментируйте существующую инициализацию и раскомментируйтеmToDoTableэто определение:mToDoTable = mClient.getSyncTable("ToDoItem", ToDoItem.class);Закомментируйте
refreshItemsFromTableопределениеresultsи раскомментируйте это определение:// Offline Sync final List<ToDoItem> results = refreshItemsFromMobileServiceTableSyncTable();Закомментируйте определение
refreshItemsFromMobileServiceTable.Раскомментируйте определение
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(); }Раскомментируйте определение
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); }
Тестирование приложения
В этом разделе описано, как проверить поведение с помощью Wi-Fi, а затем отключить WiFi, чтобы создать автономный сценарий.
При добавлении элементов данных они хранятся в локальном хранилище SQLite, но не синхронизируются с мобильной службой, пока не нажимаете кнопку "Обновить ". Другие приложения могут иметь различные требования, касающиеся синхронизации данных, но для демонстрационных целей в этом руководстве пользователь явно запрашивает его.
При нажатии этой кнопки запускается новая фоновая задача. Сначала он отправляет все изменения, внесенные в локальное хранилище с помощью контекста синхронизации, а затем извлекает все измененные данные из Azure в локальную таблицу.
Автономное тестирование
Поместите устройство или симулятор в режим самолета . Это создает автономный сценарий.
Добавьте некоторые элементы ToDo или пометьте некоторые элементы как завершенные. Закройте устройство или симулятор (или принудительно закройте приложение) и перезапустите его. Убедитесь, что изменения сохранены на устройстве, так как они хранятся в локальном хранилище SQLite.
Просмотрите содержимое таблицы Azure TodoItem с помощью средства SQL, например SQL Server Management Studio, или клиента REST, например Fiddler или Postman. Убедитесь, что новые элементы не были синхронизированы с сервером
+ 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*.Включите Wi-Fi на устройстве или симуляторе. Затем нажмите кнопку "Обновить ".
Снова просмотрите данные TodoItem на портале Azure. Теперь должны появиться новые и измененные TodoItems.
Дополнительные ресурсы
- автономная синхронизация данных в мобильных приложениях Azure
- Cloud Cover: автономная синхронизация в мобильных службах Azure (примечание. Видео находится на мобильных службах, но автономная синхронизация работает аналогичным образом в мобильных приложениях Azure)