Android 如何升级现有应用的新表?

Android 如何升级现有应用的新表?,android,sqlite,Android,Sqlite,朋友们 我发布了一个现有的应用程序,在升级过程中,我希望向数据库中添加一个新表,但在升级应用程序时不会丢失其他表中的数据。有人能告诉我(但如果你能给我一些例子)这是如何做到的,以及如何测试它。因为我已经浏览了论坛,但主要是关于添加新专栏等的讨论。我想我必须用ALTERTABLE来做,但我并不完全理解。如果您能告诉我这个过程的步骤,我将非常感激。我使用了DBAdapter类扩展SQLiteOpenHelper。接受我的问题并尽快给我解决方案。在您的类中发生的一切DBAdapter。在那里,您必须实

朋友们


我发布了一个现有的应用程序,在升级过程中,我希望向数据库中添加一个新表,但在升级应用程序时不会丢失其他表中的数据。有人能告诉我(但如果你能给我一些例子)这是如何做到的,以及如何测试它。因为我已经浏览了论坛,但主要是关于添加新专栏等的讨论。我想我必须用ALTERTABLE来做,但我并不完全理解。如果您能告诉我这个过程的步骤,我将非常感激。我使用了DBAdapter类扩展SQLiteOpenHelper。接受我的问题并尽快给我解决方案。

在您的类中发生的一切
DBAdapter
。在那里,您必须实现一个方法
onUpgrade
,将新表添加到数据库中。以下是执行此操作的框架:

class DBAdapter extends SQLiteOpenHelper {

    // Implement the other methods

    // This method is called when your application is being upgraded. 
    public void inUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        Log.i(TAG, "adding table to the database") ;
        db.execSQL("CREATE TABLE MyNewTable(_id INTEGER, name TEXT)") ;
        Log.i(TAG, "upgrade done") ;
    }

您可以查看该课程的文档

为什么这么难。遵循相同的教程。您只需要在SQLShelper类的onUpgrade方法中添加另一个CREATESQL查询。何时调用onUpgrade方法?