Понижение БД на Android - PullRequest
       10

Понижение БД на Android

3 голосов
/ 02 февраля 2010

Я проверял, что для Android возможно передать newVersion <<code>oldVersion методу SQLiteOpenHelper.onUpgrade(), т.е. он хочет, чтобы приложение понизило свою базу данных.

Я не хочу обрабатывать этот случай, хотя я хотел бы как-то уведомить пользователя о том, что существует более новая версия моего приложения (которую она, очевидно, установила ранее), и именно эту версию она должна использовать. *

Есть идеи, как лучше всего этого добиться? Toast? AlertDialog (но в каком контексте)?

Ответы [ 2 ]

2 голосов
/ 02 февраля 2010

Действительно, вы можете вызывать этот метод с «новой» версией, меньшей «старой», но когда это когда-нибудь произойдет?с более ранним APK нет необходимости думать об этом.

0 голосов
/ 17 февраля 2012

У нас есть несколько активных ветвей нашего приложения (например, v1.x и v2.x), и мы поставляем релизы для тестирования внутри компании. Это означает, что тестер иногда устанавливает более старую версию поверх новой.

Это хорошая идея, чтобы корректно справиться с этим сценарием (всплывающее окно с сообщениями об ошибках, уничтожить базу данных и т. Д.), Иначе тестер увидит сообщение «Принудительное завершение», а затем мы должны посмотреть на adb logcat журналы, чтобы подтвердить, что это произошло из-за несоответствия версий.

Первоначально я беспокоился о том, что существуют другие разумные сценарии, где это может произойти, например, при повторной активации более старой версии в Android Market (например, из-за катастрофической ошибки в новой версии).

Тем не менее, Документы для Android говорят, что вы не можете активировать более старую версию:

Вы не можете активировать новый APK с кодом версии ниже, чем у заменяемого APK.

Таким образом, чтобы попасть в этот сценарий, вам нужно перестроить старую версию с новым номером версии, прежде чем вы сможете ее активировать. IMO, все еще стоит справиться с этим сценарием, так как кто-то может легко сделать эту ошибку в 4 часа утра, пытаясь откатить плохой релиз!

...