Точное время от вызова dataChanged() до фактических данных, передаваемых на бэкэнд резервного хранилища, будет зависеть от нескольких факторов: подключение, в основном. Версия Android, на которой работает устройство, тоже имеет значение; за эти годы политика задержек была изменена. Причина в том, что отсрочка вообще заключается в том, чтобы избежать чрезмерного использования большого количества данных, используя ежемесячную квоту данных о людях, сохраняя при этом бэкэнд, по крайней мере, в основном обновляясь, чтобы вы не теряли тонны если вы случайно потеряете телефон в реке или что-то в этом роде. Обычно латентность составляет до часа, хотя с Android M она довольно длинная (более 4 часов). Для тестирования вы всегда можете выполнить немедленную резервную передачу с этой ADB команды:
adb shell bmgr run
Вы также можете имитировать призывающую dataChanged вашего приложения() первым с другим вызовом инструмента bmgr оболочки:
adb shell bmgr backup com.myapps.packagename
(. используя только имя пакета независимо от вашего приложения на самом деле, конечно)
Вы не говорите, какой путь данных приложение использует - полные данные (новые в Android M) или ключ/значение (введено в Android Froyo). dataChanged() применим только для более старого API ключа/значения.
Как указал Виктор Якунин выше, резервная копия не синхронизирована: целью системы резервного копирования является беспрепятственное предоставление данных приложения при установке приложения либо на новом устройстве, которое пользователь настраивает, либо после удаления и переустановите приложение на том же устройстве. Если вам нужны данные , замените механизм или поддерживайте идентичные данные одновременно на нескольких устройствах, вы должны посмотреть на диспетчер синхронизации или другие аналогичные сторонние устройства.
Резервное копирование Android не является подходящим инструментом для синхронизации ваших данных. Насколько я знаю, резервное копирование данных происходит один раз в день и только в некоторых предопределенных обстоятельствах, таких как «на Wi-Fi», «батарея заряжается» и другие. –
Я не знаю, что это точно, это был ответ GDE на конференции. –
Спасибо за ответ. Тогда для чего это подходит? Название предполагает, что я могу использовать его для хранения, например. пользовательские настройки там, и когда пользователь переустанавливает данные или стирает приложение, он должен восстановить их в предыдущее состояние. Но в случае, как вы описали, это не выглядит так, как если бы я мог использовать его для этой цели. – Noiseapps