DB restore: restart via AlarmManager (startActivity+exit raced, app just closed)

This commit is contained in:
4aiman 2026-09-21 13:44:54 +03:00
commit 492c54990f
2 changed files with 28 additions and 4 deletions

View file

@ -39,4 +39,16 @@
- Схема-совместимость: миграции в db.js идемпотентны (ALTER ... IF NOT EXISTS), старый бэкап
подтянется вверх, новый в старое приложение - лишние колонки безвредны.
## На роутере всё ещё 0.1.464 (build 464). Новый бэкап-билд (465) на роутер не выкатывал.
## Проверка на теле + фиксы
- Экспорт сперва падал: `vacuum: unable to open database: /data/user/...`. Причина - я взял
корень как `app_data_dir().parent().parent()` (на Android app_data_dir САМ = корень -> ../..
уводит в непишемый `/data/user`). ЭТО УЖЕ ЧИНИЛИ функцией `native_root()`. Исправил на
`native_root()` (как save-команды/rebuild_roads), убрал data_dir-дубли. Записано в память
`reference_android_native_root`. Подтверждено на теле: корень `/data/user/0/dev.baldav.app`
писабелен, там baldav.db + точки + командные файлы -> native_root резолвится туда.
- Экспорт + импорт (восстановление) пользователь проверил на теле - работают.
- Авто-рестарт после импорта не срабатывал: `startActivity()+exit(0)` - гонка (процесс умирает
до подъёма активити). Исправлено: relaunch через AlarmManager+PendingIntent ПОСЛЕ смерти
процесса (ProcessPhoenix-паттерн) + finishAffinity.
## На роутере всё ещё 0.1.464 (build 464). Бэкап-билды на роутер не выкатывал.