android - Android 是否会在更新时清理应用程序缓存?

标签 android caching

在此document ,谷歌说:

When the user uninstalls your app, the system removes all your app's files from internal storage.

但是当更新应用程序版本(例如从 v1.0 到 v1.1)时,它会自动清除应用程序缓存(或内部存储中的任何其他数据)吗?

因为当我监控我公司的应用程序时,/cache 文件夹在我们每次发布和用户更新到新应用程序版本时都会呈下降趋势。

我在手机上进行了测试,发现应用缓存确实减小了大小。但我不确定所有设备是否都相同。

最佳答案

内部存储:

当用户卸载您的应用时,系统会从内部存储中删除您应用的所有文件。

外部存储:

  • 公共(public)文件:应该可供其他应用和用户免费使用的文件。当用户卸载您的应用程序时,这些文件应该对用户保持可用。
  • 私有(private)文件:使用 getExternalFilesDir() 创建并属于您的应用的文件,当用户卸载您的应用时将被删除。

是的,它会在用户卸载时清除数据,但不会在用户更新您的应用时

请注意,某些应用确实通过以下方式实现了自己的清理机制:

  • 使用 BroadcastReceiver 捕获 android.intent.action.PACKAGE_REPLACED,然后触发清理一些特定数据。
  • 在一段时间间隔后或当文件夹的大小达到阈值/上限时运行 cron 作业以清理数据。

有关详细信息,请参阅 this .

关于android - Android 是否会在更新时清理应用程序缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51148717/

相关文章:

python - 使用 Flask 在特定页面上禁用缓存

使用 XML 的 Android fragment ListView

android - 允许用户选择应用程序语言/语言环境?

java - 修复操作栏中搜索 View 的 getfilter

java - 使用 Hazelcast 而不是 MongoDB 存储用户 session / key 有什么好处?

c# - 大型 asp.net 缓存存储持久化方法的效率

javascript - 通过 $.get 加载外部文件通常不会返回响应,即使响应代码是 200

android - 为什么包 "com.android.bluetooth"在三星设备上查询我们的 MediaBrowserService?

java - canvas.drawCircle 不显示在 for 循环中

optimization - 为什么鱿鱼适合 REST 架构?