powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / Обновление приложения и базы данных
13 сообщений из 13, страница 1 из 1
Обновление приложения и базы данных
    #39169269
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день.
Есть опубликованное в google play приложение. Со временем появилась необходимость его обновить. Столкнулся с проблемой: закидываю в assets новую версию БД, запускаю приложение, но в эмуляторе всё равно находится старая версия БД. Полагаю, что если загрузить новое приложение в GP, ситуация у пользователей будет такая же.
Как правильно обновить приложение с новой БД?
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39169271
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39183779
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял, нужно реализовать метод onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion). С newVersion всё понятно, зашиваем в код, передаём методу onUpgrade. А как быть с oldVersion? Если его вшить в код, то база будет постоянно обновляться.
Я вижу такой механизм:
п.1. Проверяем, (CASE WHEN oldVersion < newVersion THEN 'чего-то делаем' ELSE 'ничего не делаем' END)
п.2. oldVersion := newVersion
Тогда н.б. хранить oldVersion тоже в БД и при каждом апдейте, поле тоже апдейтить. Насколько правилен такой подход и есть ли ещё варианты реализации по-лучше? М.б. у андроида есть спец метод getCurrentDbVersion() ?
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39183806
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoА как быть с oldVersion? Если его вшить в код, то база будет постоянно обновляться.
Все таки стоит читать ссылки-то...
Методы onCreate, onUpgrade дергаются андроидом при необходимости . Самому их вызывать нельзя.
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39183815
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как он узнаёт что версия БД изменилась и откуда он берёт oldVersion, newVersion ?
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39183825
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoА как он узнаёт что версия БД изменилась и откуда он берёт oldVersion, newVersion ?
Из конструктора. Остается лишь правильно записывать ходы, где и что меняется от версии к версии, запоминать их и воспроизводить. И тогда, если пользователь установит на первую версию сразу десятую, то хелпер воспроизведет шаги со второго по десятый.
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39183855
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoА как он узнаёт что версия БД изменилась и откуда он берёт oldVersion, newVersion ?
из PRAGMA USER_VERSION
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39184150
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как вывести PRAGMA и USER_VERSION ?
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39184161
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoИ как вывести PRAGMA и USER_VERSION ?
в приложении тебе это не нужно, я поделился чисто в образовательных целях. ну или это нужно изредка для определения версии при наличии файла на руках. "PRAGMA user_version" это SQL команда
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39185001
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanОстается лишь правильно записывать ходы, где и что меняется от версии к версии, запоминать их и воспроизводить

Не совсем подходит. Проще грохнуть старую, скопировать новую. Поэтому решил метод onUpgrade не трогать. Выбрал вариант хранить текущую версию в самой БД.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
if(isDatabaseExist()){
            //Сверяем текущую версию базы и ту что в assets
            if (getCurrentDbVersion() < DB_VERSION){
                try {
                    copyDataBase();
                } catch (IOException e) {
                    throw new Error("Error copying database");
                }
            }
        }
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39185010
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoНе совсем подходит. Проще грохнуть старую, скопировать новую.
можно и так, если условия позволяют

sanringoВыбрал вариант хранить текущую версию в самой БД.
да она и так там хранится, в USER_VERSION
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39185279
sanringo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загрузил обновление. Теперь самому заходить на сайт или приложение автоматически само обновится. Есть ли принудительная команда, которая проверяет наличие обновления?
...
Рейтинг: 0 / 0
Обновление приложения и базы данных
    #39185573
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sanringoЗагрузил обновление.
В маркет?
sanringoЕсть ли принудительная команда, которая проверяет наличие обновления?
Принудительный нет, но есть код, который проверяет в маркете версию. Только зачем это? Говорят, что по статистике более 90% пользователей андроид заходят в маркет каждый день. Это не считая тех, у кого обновления ставятся автоматом.

https://www.google.ru/search?q=android check version in market
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Android [игнор отключен] [закрыт для гостей] / Обновление приложения и базы данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]