【问题标题】:Clearing app cache programmatically?以编程方式清除应用程序缓存?
【发布时间】:2011-01-05 15:09:02
【问题描述】:

我想编写一个实用程序,用户可以在其中选择一组已安装的应用程序并清除其数据缓存,就像您可以使用内置设置->应用程序设置屏幕和“清除缓存”按钮手动执行的方式一样.

如何访问每个应用拥有多少缓存数据并以编程方式清除这些缓存?

【问题讨论】:

    标签: java android mobile


    【解决方案1】:

    这里给出的答案是错误的,有些市场应用程序具有程序化清除所有应用程序缓存功能。此外,文档中有以下内容:

    public static final String CLEAR_APP_CACHE
    

    自:Android 中的 API 级别 1 允许应用程序清除设备上所有已安装应用程序的缓存。 常数值:

     android.permission.CLEAR_APP_CACHE
    

    请注意“所有已安装的应用程序部分”,以及您不需要任何 root 访问权限或超出标准用户权限的特殊权限这一事实。

    我在这里发帖是因为我要求交付物每 24 小时清除一次店内演示手机上的所有应用程序缓存,我正试图弄清楚如何正确使用它。我知道解决方案的一部分是获得此权限,我也知道如何在设备上查找所有已安装的应用程序,并且我正在努力能够真正删除缓存。我的问题是其他应用程序缓存被读取为不包含文件(尽管有内容),我怀疑是因为我没有读取权限来进行列表文件调用。

    【讨论】:

    • 比@tim 可以发布任何代码来清除所有应用程序的缓存吗?并且可以获得释放的内存量吗?
    【解决方案2】:

    普通的 SDK 应用程序无权访问,更不用说修改其他应用程序的缓存,就像它们无权破解您的文件一样。

    这可能在您的应用程序以 root 身份运行的 root 手机上实现,在这种情况下,您必须根据应用程序的包名称手动构建路径。

    【讨论】:

    • 好的,谢谢。我见过一些实用程序可以帮助您管理缓存,但它们必须需要 root 访问权限。有没有办法至少列出每个应用程序的缓存占用了多少空间?有没有办法通过特定应用的“清除缓存”按钮跳转到设置活动?
    • @robosheep:“有没有办法至少列出每个应用程序的缓存占用了多少空间?” - 不是我知道的,但我并没有完全去寻找它。 “是否有某种方法可以使用特定应用程序的“清除缓存”按钮跳转到设置活动?” -- 试试developer.android.com/reference/android/provider/…(注意:Android 2.3 的新手)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 2015-07-31
    相关资源
    最近更新 更多