Updating the database doesn't work -Android -


i wrote code ensure database updated when release updates application.

the problem onupdate() function of sqliteopenhelper never called. here code wrote in main activity -

    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();     } 

here constructor of sqliteopenhelper(which extends sqliteopenhelper) -

public databasehelper(context context,int ver_code) {            super(context, db_name, null, ver_code);     this.mycontext = context; }    

now understood super line supposed call onupgrade() function automatically, doesn't.

i've tested function onupgrade() separately, , works.

does know what's problem?

thanks!

what doing not neccessary. sqliteopenhelper need. here's possible scenario. sqliteopenhelper has getversion() method in case need query @ 1 point (i never did):

public class mysqliteopenhelper extends sqliteopenhelper {    private static final string dbname = "whatever";   private static final int    dbversion = 1;  // first version //private static final int    dbversion = 2;  // second version //private static final int    dbversion = 3;  // third version    public mysqliteopenhelper(context context) {     super(context, dbname, null, dbversion);     this.context = context;   }    @override   public void oncreate(sqlitedatabase sqlitedatabase) {     // ... create first database content   }    @override   public void onupgrade(sqlitedatabase sqlitedatabase, int oldversion, int newversion) {     switch (newversion) {       case dbversion:  // suppose on third version         if (oldversion == 1) {           upgradefrom1to2(sqlitedatabase);           upgradefrom2to3(sqlitedatabase);         }          if (oldversion == 2) {           upgradefrom2to3(sqlitedatabase);         }          break;       default:         break;     }   }    public void upgradefrom1to2(sqlitedatabase sqlitedatabase) {     // ...   }    public void upgradefrom2to3(sqlitedatabase sqlitedatabase) {     // ...   } } 

Comments