多数のエントリがデータベースに格納され、ユーザーが入力した値がデータベースの列の 1 つのエントリごとに格納されるアプリケーション (オフラインで動作するように設計されています) があります。ユーザーは、アプリを使用するときにこれらの値のみを変更します。
しかし、アプリの更新をプッシュすると、ユーザーは入力したすべての値を失います。問題を解決するにはどうすればよいですか? (データベースを Android アプリケーションに対してプライベートにすることも必要です)。
多数のエントリがデータベースに格納され、ユーザーが入力した値がデータベースの列の 1 つのエントリごとに格納されるアプリケーション (オフラインで動作するように設計されています) があります。ユーザーは、アプリを使用するときにこれらの値のみを変更します。
しかし、アプリの更新をプッシュすると、ユーザーは入力したすべての値を失います。問題を解決するにはどうすればよいですか? (データベースを Android アプリケーションに対してプライベートにすることも必要です)。
次のように DB を作成できます。
/**
* Open the test database. If it cannot be opened, try to create a new
* instance of the database. If it cannot be created, throw an exception to
* signal the failure
*
* @return this (self reference, allowing this to be chained in an
* initialization call)
* @throws SQLException
* if the database could be neither opened or created
*/
public TestDBAdapter open() throws SQLException {
mDbHelper = new DatabaseHelper(mCtx);
mDb = mDbHelper.getWritableDatabase();
dbVersionWebiDBAdapter = mDbHelper.dbVersion;
return this;
}
これは非常にうまく機能し、すべての更新でデータを取得できます。新しい更新でデータベースを簡単に更新できるように、ある種の DB バージョン管理を使用することもできます。
この DB は、ユーザーが設定メニューに移動し、そこでアプリまたはデータをアンインストールした場合にのみ削除されます。アプリの更新ロードでは、データベースが保持されます。