Я написал некоторый код, чтобы гарантировать, что моя база данных будет обновлена должным образом, когда я выпущу обновления для моего приложения.
Проблема в том, что функция OnUpdate () в SQLiteOpenHelper никогда не вызывается.
Вот код, который я написал в основном упражнении -
SharedPreferences DB_ver = getSharedPreferences(PREFS_NAME, 0);
myDbHelper = new DataBaseHelper(con, DB_ver.getInt("DB_ver", 1));
try {
if(DB_ver.getInt("DB_ver", 1) !=getPackageManager().getPackageInfo(getPackageName(), 0).versionCode )
{
SharedPreferences.Editor editor = DB_ver.edit();
editor.putInt("DB_ver", getPackageManager().getPackageInfo(getPackageName(), 0).versionCode);
}
} catch (NameNotFoundException e) {
e.printStackTrace();
}
Вот конструктор SQLiteOpenHelper (который расширяет SQLiteOpenHelper) -
public DataBaseHelper(Context context,int ver_code) {
super(context, DB_NAME, null, ver_code);
this.myContext = context;
}
Теперь я понял, что линия Super должна автоматически вызывать функцию onUpgrade (), но это не так.
Я протестировал функцию onUpgrade () отдельно, и она работает.
Кто-нибудь знает в чем проблема?
Спасибо!