3

Android がnewVersion<oldVersionSQLiteOpenHelper.onUpgrade()メソッドに渡すことができることをテストしました。アプリケーションがそのデータベースをダウングレードすることを望んでいます。

私はこのケースを処理したくありませんが、私のアプリケーションの新しいバージョン (明らかに以前にインストールしたもの) が存在し、それを使用する必要があることを何らかの形でユーザーに通知したいと思います。

これを達成するための最良の方法は何ですか?Toast? AlertDialog(しかし、どのような文脈で)?

4

2 に答える 2

2

実際、「古い」バージョンよりも小さい「新しい」バージョンでそのメソッドを呼び出すことができますが、いつ発生するのでしょうか。

ユーザーがアプリを手動で再インストールし、以前のAPKで上書きすることを期待しない限り、これについて考える必要はありません。

于 2010-02-02T20:10:07.873 に答える
-1

アプリには複数のアクティブなブランチ (v1.x と v2.x など) があり、テスト用に社内でリリースを提供しています。これは、テスターが新しいバージョンの上に古いバージョンをインストールする場合があることを意味します。

このシナリオ (有用なエラー ポップアップ、データベースの吹き飛ばしなど) では適切に対処することをお勧めします。そうしないと、テスターに​​「強制終了」メッセージが表示されますadb logcat。バージョンの不一致が原因です。

当初、これが発生する可能性がある他の合理的なシナリオがあるのではないかと心配していました。たとえば、Android マーケットで古いバージョンを再アクティブ化する場合です (たとえば、新しいバージョンの壊滅的なバグのため)。

ただし、Android のドキュメントには、古いリリースをアクティベートできないと書かれているようです。

置き換える APK のバージョン コードよりも低いバージョン コードを持つ新しい APK をアクティブ化することはできません。

したがって、このシナリオを実行するには、アクティブ化する前に、古いバージョンを新しいバージョン番号で再構築する必要があります。IMO このシナリオに対処する価値はまだあります。午前 4 時に誰かが悪いリリースを取り消そうとするときに、この間違いを簡単に犯してしまう可能性があるからです。

于 2012-02-17T18:29:06.953 に答える