我发现在应用上运行更新的preferences.xml文件的唯一方法是在再次运行之前从设备中删除该应用。
在此之前我尝试过:
它仍会运行旧版本。
是否可以实现自动化?或者至少让android studio取消缓存已编辑的文件?
Android Studio 1.5.1
答案 0 :(得分:0)
我将假设您的preferences.xml
是PreferenceScreen
的定义,包括您提及的ListPreference
。这与SharedPreferences
完全独立,PreferenceScreen
保存preferences.xml
本身的用户设置值的结果。仅仅因为您更改了SharedPreferences
,就不会立即影响任何现有的<input>
。这与更改网页上ListPreference
元素的名称没有什么不同,并且不知何故期望Web服务器上的MySQL数据库会神奇地改变。
如果您更改PreferenceScreen
的密钥,则下次用户进入ListPreference
时,将不会设置SharedPreferences
值。换句话说,行为就好像用户之前从未访问过该偏好。
此外,用户提供的旧密钥下的任何值都将无限期地保留在onUpgrade()
中。这可能不是一个大问题。
如果您想将现有值从旧密钥迁移到新密钥,则必须自己处理。这类似于在SQLiteOpenHelper
中实现SharedPreferencesHelper
来修改数据库模式以更改表中的列名。 Android本身不附带SQLiteOpenHelper
以adb shell pm clear my.wonderful.app.package
的方式为您提供帮助,但可能有第三方库提供此功能。
答案 1 :(得分:0)