Как работает BackupAgent?
-
19-09-2019 - |
Вопрос
Я просматриваю файлы AndroidManifest и вижу записи для android:backupAgent
и в соответствии с Документацией android:backupAgent
является
Имя класса, реализующего BackupAgent для управления резервным копированием и восстановлением настроек приложения во внешнем хранилище.
Но я не могу найти BackupAgent
интерфейс или любая другая документация.Кто-нибудь может указать мне правильное направление?
Решение
API BackupAgent еще не утвержден, поэтому это скрытый класс. Вы можете проверить это на Android git, где есть этот комментарий:
/**
* This is the central interface between an application and Android's
* settings backup mechanism.
*
* @hide pending API solidification
*/
Другие советы
Все, что я могу предложить, это исходный код для android.app.BackupAgent
и тот исходный код для android.backup.BackupManager
.
BackupAgent
это абстрактный класс, и, согласно javadoc в исходном коде, он "является центральным интерфейсом между приложением и механизмом резервного копирования настроек Android". Он имеет абстрактный onBackup()
и onRestore()
методы.
Существует также BackupManager
.Javadoc говорит "BackupManager
является интерфейсом к системной службе резервного копирования.Приложения просто создают экземпляр одного из них, а затем используют этот экземпляр для взаимодействия с инфраструктурой резервного копирования ". Он имеет dataChanged()
метод, вызываемый для планирования резервного копирования и beginRestoreSession()
способ запуска восстановления.
Теперь, интересные вещи в коде для BackupManager
являются:
*
* @hide pending API solidification
*/
и:
/** @hide TODO: REMOVE THIS */
public static final boolean EVEN_THINK_ABOUT_DOING_RESTORE = true;
Таким образом, похоже, что это все еще незавершенная работа, и EVEN_THINK_ABOUT_DOING_RESTORE
переменная-член - это простой способ отключить функцию резервного копирования.Я предполагаю, что это отключено в производственных сборках Android.