所以,这就是我的应用程序正在做的事情。我在互联网上有一个文件列表。我正在加载该文件并在手机上的数据库中保存位置。此外,我每24小时下载相同的文件,并检查它是否有一些更新。接下来我要做的是:我想在该文件中放入该文件的当前版本,当我下载它时,我检查该版本与前一版本,如果它们不同,我想删除当前表,并加载所有地点再次。
目前,我的应用程序正在执行以下操作:我有一个警报触发IntentService然后下载文件并检查每个位置(如果它在数据库中),如果不是,则插入它。
我想要:IntentService首先检查下载的文件版本是否与前一版本不同,如果是,则删除该表,并在新表中插入文件中的所有位置。
我正在使用ContentProvider和SQLiteOpenHelper管理我的数据库。 我想我应该以某种方式触发SQLiteOpenHelper的onUpgrade方法,但我不知道如何做到这一点。
任何帮助都将不胜感激。
答案 0 :(得分:0)
您必须将onUpgrade方法放入所有数据库操作(ALTER TABLE,DROP等...),以便更新数据库,不要忘记增加数据库版本。
当您增加数据库版本时,将在更新后首次启动应用程序时自动调用onUpgrade方法。
编辑:
您可以使用静态字段设置数据库版本:
private static final int DATABASE_VERSION = 2;
并传递给超级构造函数:
super(context, DATABASE_NAME, null, DATABASE_VERSION);
并在需要更新数据库时调用DATABASE_VERSION(调用onUpgrade)。