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
Другие вопросы по тегам