2011-09-01 7 views
0

私はアンドロイドマーケットにアプリケーションを公開しましたが、今はデータベースの変更を加えて新しいバージョンを作りたいと思います。onUpgradeメソッドに関する質問android

@Override 
    public void onUpgrade(SQLiteDatabase _db, int _oldVersion, int _newVersion) { 
    Log.w("TaskDBAdapter", "Upgrading from version " + 
    _oldVersion + " to " + 
    _newVersion + ", which will destroy all old data"); 
    // Drop the old table. 
    _db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_1); 
    _db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE_2); 
    // Create a new one. 
    onCreate(_db); 
    } 

私は新しいテーブルを追加したいので、私はからデータを守るためにここにいくつかの変更をしなければならないことを知っている:問題は、すでに公開されているアプリの私のバージョンは、このONUPGRADEメソッドを持っている、です以前のバージョンで作成したテーブルでは、古いまたは新しい.apkからどのonUpgradeメソッドを呼び出すかを指定します。テーブルからデータを保持できますか?私にお知らせください。 ありがとうございます。

答えて

1

したがって、古いまたは新しい.apkからどのようなonUpgradeメソッドが呼び出されますか。

新しい.apk。古いものはこの時点でなくなっています。

テーブルからデータを保持できますか?

必要に応じて古いデータを含めて必要なデータを保持するようにアップグレードをコードする必要があります。

+0

は、Uをありがとう、私はそれが新しいか古いの.apkからになりますについてほとんど心配していました。あなたは私の質問に答えました – Sandra

0

テーブルを削除すると、現在のすべてのデータが消去されます。データを保持するには、カスタムonUpgradeメソッドを作成してこれを行う必要があります。ここでは、これを説明し、あなたが何をする必要があるかについていくつかのアイデアを与える可能性があり、以前のポストがあります:

SQLiteOpenHelper onUpgrade() Confusion Android