2011-08-05 43 views
0

我有一个应用程序在android市场上发布,它使用sqlite并显示数据。我想知道如果我通过添加功能发送应用程序更新,是否应该上传新数据库?当用户已经拥有我的应用时,点击更新会发生什么?数据库会自行更新吗?如果用户第一次下载我的应用程序,他们肯定会得到新的数据库内容...但现有的用户呢?我想知道是否必须明确更新程序中的数据库android应用程序更新时的SQLite更新

回答

0

当您创建新版本...如果你改变了数据库的版本...的onUpgrade功能将所有现有的用户运行:

public static final int dbVersion = 2; 
protected static class DatabaseHelper extends SQLiteOpenHelper { 
    public DatabaseHelper(Context context) { 
     super(context, dbName, null, dbVersion); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     //create tables 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     //what do you want to do to existing users? maybe recreate? 
    } 
} 
0

为什么不通过代码创建sqlite数据库?这样,您的更新可以更新数据库上的SQL(更改列,添加行),而不会影响用户现有数据。

+0

我已经把我现在的分贝在Assets文件夹和我是retri从那里开始。所以我想知道如果我需要更换现有的数据库或当用户选择更新...它会以某种方式获取它? –

0

如果要更改数据库的属性然后更新用会造成问题,如果数据库的属性是相同的,那么它不会有任何效果...

0

您可以使用android.database.sqlite.SQLiteOpenHelper类,它支持版本和迁移机制