是否可以从Android设备更新缓存文件而不删除应用程序?

时间:2016-02-28 13:52:43

标签: android caching android-studio sharedpreferences

我发现在应用上运行更新的preferences.xml文件的唯一方法是在再次运行之前从设备中删除该应用。

在此之前我尝试过:

  • 重建
  • 清洗
  • 文件 - >无效缓存/重启
  • 删除〜/ .gradle / cache /
  • 删除项目/ .gradle
  • 重启我的机器

它仍会运行旧版本。

是否可以实现自动化?或者至少让android studio取消缓存已编辑的文件?

Android Studio 1.5.1

2 个答案:

答案 0 :(得分:0)

我将假设您的preferences.xmlPreferenceScreen的定义,包括您提及的ListPreference。这与SharedPreferences完全独立,PreferenceScreen保存preferences.xml本身的用户设置值的结果。仅仅因为您更改了SharedPreferences,就不会立即影响任何现有的<input>。这与更改网页上ListPreference元素的名称没有什么不同,并且不知何故期望Web服务器上的MySQL数据库会神奇地改变。

如果您更改PreferenceScreen的密钥,则下次用户进入ListPreference时,将不会设置SharedPreferences值。换句话说,行为就好像用户之前从未访问过该偏好。

此外,用户提供的旧密钥下的任何值都将无限期地保留在onUpgrade()中。这可能不是一个大问题。

如果您想现有值从旧密钥迁移到新密钥,则必须自己处理。这类似于在SQLiteOpenHelper中实现SharedPreferencesHelper来修改数据库模式以更改表中的列名。 Android本身不附带SQLiteOpenHelperadb shell pm clear my.wonderful.app.package 的方式为您提供帮助,但可能有第三方库提供此功能。

答案 1 :(得分:0)

您只需在应用设置页面中清除数据即可。

是的,你可以通过运行来自动化它:

onChange

还有一个IDEA plugin可以帮到你。