android:allowBackup=false, но BackupAgent по-прежнему требуется

Я занят разработкой приложения (Android Studio 1.3.1) для Android версии 4.4.2 и хотел бы, чтобы приложение запускалось сразу после загрузки. Моя проблема в том, что это не так, и при отладке я обнаружил, что он жалуется на отсутствующий BackupAgent. Я установил для android:allowBackup значение false в манифесте, но это, похоже, не помогает удалить исключение об отсутствующем BackupAgent.

Я неправильно понимаю цель android:allowBackup?

Я не нуждаюсь в поддержке.

1 ответ

Кажется, что они отличаются друг от друга:

http://developer.android.com/guide/topics/manifest/application-element.html

<application android:allowTaskReparenting=["true" | "false"]
             android:allowBackup=["true" | "false"]
             android:backupAgent="string"

И: http://developer.android.com/reference/android/app/backup/BackupAgent.html

Обеспечивает центральный интерфейс между приложением и инфраструктурой резервного копирования данных Android. Приложение, которое желает участвовать в механизме резервного копирования и восстановления, объявит подкласс BackupAgent, реализует методы onBackup() и onRestore() и предоставит имя своего класса агента резервного копирования в своем файле AndroidManifest.xml через <application> тег андроида: атрибут резервного копирования.

И вам нужно добавить это в свой ApplicationTAG -> Manifest:

android:backupAgent

Кроме того, вы можете посмотреть:

Большинству приложений не нужно расширять класс BackupAgent напрямую, а вместо этого следует расширять BackupAgentHelper, чтобы воспользоваться встроенными вспомогательными классами, которые автоматически выполняют резервное копирование и восстановление ваших файлов. Однако вы можете расширить BackupAgent напрямую, если вам необходимо:

  • Версия вашего формата данных. Например, если вы ожидаете необходимости пересмотра формата, в котором вы записываете данные своего приложения, вы можете создать агент резервного копирования для перекрестной проверки версии вашего приложения во время операции восстановления и выполнения любых необходимых операций совместимости, если версия на устройстве имеет отличается от резервного копирования данных. Для получения дополнительной информации см. Проверка версии восстановления данных.

  • Вместо резервного копирования всего файла вы можете указать части данных, которые должны быть сохранены, и способ восстановления каждой части на устройстве. (Это также может помочь вам управлять различными версиями, потому что вы читаете и записываете свои данные как уникальные объекты, а не как целые файлы.)

  • Резервное копирование данных в базе данных. Если у вас есть база данных SQLite, которую вы хотите восстановить, когда пользователь переустанавливает ваше приложение, вам нужно создать специальный BackupAgent, который считывает соответствующие данные во время операции резервного копирования, затем создайте таблицу и вставьте данные во время операции восстановления.
Другие вопросы по тегам