1

Google Play ストアに既に公開されている実用的なアプリがあります。アプリで sqllite データベースを使用してデータを保存しています。以下のような問題が発生しています。

  1. 現在、たとえば1.1の私のアプリバージョンには、テーブルが1つしかありません。データヘルパークラスの onCreate() メソッド内で作成します。

  2. アップデート 1.2 では、onUpgrade() メソッド内で作成したデータベースにテーブルをもう 1 つ追加しました。次のように

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) 
    {
      db.execSQL(ShortCode.TABLE_CREATE_STATEMENT);
      onCreate(db);
    }
    

ユーザーが以前にモバイルに1.1をインストールしていて、1.2に更新した場合、両方のテーブルがユーザーで作成され、アプリを問題なく使用できます。ただし、ユーザーが新しいコピーをインストールするか、1.2 アプリを直接インストールすると、アプリがクラッシュします。これを避けるためにできること。どんな助けでも大歓迎です。前もって感謝します。

4

3 に答える 3

0

onCreate新しくインストールされたアプリ (またはユーザーがアプリのデータを削除した後) に使用されます。
onUpgradeアプリが更新されたとき、つまり、古いバージョンのデータがデバイスに既に存在するときに使用されます。

onCreate1.2 アプリのメソッドは、そのバージョンに必要なすべてのテーブルを作成する必要があります。

于 2013-08-22T09:20:36.693 に答える