Android база данных
Я пытаюсь реализовать резервное копирование данных в моем приложении с помощью API резервного копирования данных.
onBackup
метод в BackupAgent
вспомогательный класс никогда не вызывается. В документе говорится, что onBackup()
будет называться некоторое время в будущем. Есть ли конкретное время, когда onBackup
будет вызван? Будет ли он вызываться только один раз в день?
Я попытался форсировать резервное копирование данных на эмуляторе и устройстве Nexus 7, используя следующую команду:
adb shell bmgr backup <package>
adb shell bmgr run
onBackup()
реализация была вызвана на эмуляторе, но на устройстве она никогда не вызывалась. Будет ли работать инструмент bmgr на устройстве? Пожалуйста, помогите мне понять.
2 ответа
Проверьте свой файл манифеста, чтобы увидеть, есть ли в приложении у вас android: allowBackup ="true", а также android: backupAgent с правильным путем к вашим проектам FileBackupAgent. Кроме того, ваши метаданные должны иметь зарегистрированный ключ, например, android: value ="your-registerd-key"
Убедитесь, что ваше устройство подключено к сети Wi-Fi. Кроме того, убедитесь, что в настройках вашего устройства резервное копирование и сброс должны быть отмечены "Резервное копирование моих данных" и "Учетная запись резервной копии" имеет действительную учетную запись Gmail, а также "Автоматическое восстановление".
Кроме того, в командном окне ваши параметры транспорта должны быть следующими: *com.google.android.backup/.BackupTransportService
Вы можете увидеть это, набрав: bmgr list транспорты Если транспорт установлен на локальный, введите: bmgr transport com.google.android.backup /.BackupTransportService
Другие команды bmgr для запуска резервного копирования в https://www.google.com/settings/dashboard:
bmgr enabled
bmgr wipe "your package in your manifest file"
bmgr backup "your package in your manifest file"
bmgr run
Обновите https://www.google.com/settings/dashboard чтобы увидеть последнюю отметку времени резервного копирования.
Бежать
adb shell bmgr transport android/com.android.internal.backup.LocalTransport
изменить транспорт на локальный (хотя документация
https://developer.android.com/guide/topics/data/testingbackup.html
предлагает Google транспорт, он будет налагать ограничение на резервное копирование, и вы сможете создавать резервные копии только каждые 24 часа).
Запустите эту команду, чтобы запустить резервное копирование:
adb shell bmgr run
Команда "run" приводит к немедленному запуску любой запланированной операции резервного копирования без обычного периода ожидания для пакетной обработки изменений данных.
Запустите это, чтобы увидеть ожидающие резервные копии:
adb shell dumpsys backup