0

アプリの assests ディレクトリにデータベース ファイルがあり、アプリが初めて実行されるとき、またはデータベースが存在しないときに、アプリはそれをインポートします。ユーザーが次回アプリを更新するときに、データベースを私が持っているデータベースに置き換えたいと思います。データが失われないように、ユーザーが更新したときにのみ実行する必要があります。

誰か助けてくれませんか?

これは私のコードです: http://pastie.org/private/bni5iwbob1oklyxx5atolq#66

4

1 に答える 1

1

コンストラクターで使用した Db バージョンを更新する必要があります

public DbImportHelper(Context context) {
    super(context, DB_NAME, null, 1);
    this.myContext = context;
    // TODO Auto-generated constructor stub
}

このようにonUpgradeが呼び出されます。DB を初期化すると、システムはデバイスに存在する DB の現在のバージョンをチェックします。バージョンが一致しない場合は、onUpgrade または onDownGrade メソッドが呼び出されます。

コンストラクターを次のように変更できます

public DbImportHelper(Context context) {
    super(context, DB_NAME, null, 2);
    this.myContext = context;
    // TODO Auto-generated constructor stub
}

1 つの提案は、1、2、55 などのマジック ナンバーの使用を避け、それらに定数を割り当てることができます。これにより、常にコードを検索する必要がなくなります。

于 2013-04-26T13:27:47.210 に答える