在我当前项目的早期版本中,我们使用数据库进行设置。 但是现在我们认为数据库是简单键值对的开销 所以我们决定使用sharedpref。 现在的问题是如何处理更新功能。 我们没有使用数据库,因此onUpgrade不起作用。
我正在计划做
ArrayList<String> databases = new ArrayList<String>(Arrays.asList(mContext.databaseList()));
if(databases.contains("dbname")){
copyDataToSharedPref();
mContext.deleteDatabase("dbname");
}
有没有简单的方法来解决这个问题?
答案 0 :(得分:2)
有没有简单的方法来解决这个问题?
不完全,但并不困难。只需做类似以下的事情......
Activity
启动时,请检查SharedPreferences
是否有特定的密钥,例如 - 布尔值&#34; update_complete&#34;。SharedPreferences
,所以继续运行应用程序。SharedPreferences
设置为新安装。SharedPreferences
,删除数据库然后放入&#34; update_complete&#34; boolean into SharedPreferences
。我认为这涵盖了它。
答案 1 :(得分:0)
即使在更新应用程序后,数据库条目也会存在(如果用户不清除数据)。所以在你的情况下我会:
SharedPreferences
。context.deleteDatabase(DATABASE_NAME);
我认为Application
课程是最佳选择。
我不确定这是否是最好的(或最差的:P
)方法,但我希望它有用。