当前位置: 首页 > 面试题库 >

在Android上以编程方式清除PhoneGap / Cordova应用程序的缓存以模拟全新安装?

松钟展
2023-03-14
问题内容

这与我以前的问题“
每次安装时如何在Android模拟器上清除应用程序的localStorage?‘。

它还基于’ 如何清除Android应用程序缓存?’和’如何以编程方式清除应用程序数据?‘。

以上问题均未给出适用于Android PhoneGap /
Cordova应用程序的简单答案。本博客文章由伊戈尔Hrupin涵盖在上下文的情况下
原生 Android应用程序,所以这个问题扩展了覆盖科尔多瓦。

我将自己发布答案,但我完全是Java新手,因此请进行修改以改进。


问题答案:

我无法强制android重新加载以下新版本:

super.loadUrl("file:///android_asset/www/index.html");

在两次调用之间,因此我首先借用了您的代码,除了可以删除我的应用程序正在写入的所有数据外,它们的工作情况还不错。

一个快速简单的修复方法是更改​​上面文件的URL:

super.loadUrl("file:///android_asset/www/index.html?1");

并更改后面的数字?每个负载。最终我添加了:

import java.util.Random;

public class MainActivity extends DroidGap {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Random generator = new Random();
        int r = generator.nextInt();
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html?" + r);
    }
}

现在,每次我重新构建应用程序时,它实际上都会刷新html文件的缓存版本。

我非常想知道如何从应用程序本身内部强制loadUrl刷新,或在重新加载时强制它。



 类似资料:
  • 问题内容: 我想编写一个实用程序,用户可以在其中选择一组已安装的应用程序并清除其数据缓存,例如,您可以使用内置的“设置”->“应用程序”设置屏幕中的“清除缓存”按钮来手动执行此操作。 如何访问每个应用程序具有多少缓存数据并以编程方式清除这些缓存? 问题答案: 普通的SDK应用程序无权访问(更不用说修改)其他应用程序的缓存了,甚至无权修改您的文件。 在具有以root用户身份运行的应用程序的有根电话上

  • 更新我的Android应用程序的www文件夹(使用Cordova 3.6.3)时,该应用程序会显示我的www的旧缓存版本。 如果我清除应用程序数据(来自Android- 当应用程序更新时(或每次应用程序启动时),如何强制应用程序清除缓存?

  • 在Android4.0中,我使用这个解决方案来清除我的应用程序缓存,它工作得很好: 我对谷歌地图缓存清除感兴趣,上面写的解决方案适合我在Android 4.0中工作,但不适合Android 4.2.2。如有任何帮助,不胜感激。 我在logcat中没有任何错误。设备:三星Galaxy Tab 2 7.0'

  • 问题内容: 我正在为android应用程序开发自动化测试(使用Robotium)。为了确保测试的一致性和可靠性,我想以干净状态(正在测试的应用程序)开始每个测试。为此,我需要清除应用数据。可以在“设置/应用程序/管理应用程序/ [我的应用程序] /清除数据”中手动完成此操作 以编程方式完成此操作的推荐方法是什么? 问题答案: 您可以使用包管理器工具清除已安装应用的数据(类似于按设备上应用设置中的“

  • 我正在构建一个应用程序,在注销后需要清除缓存和本地存储数据。 我的注销方法调用clearCache()方法。我正在使用cordova存储插件。 缓存和本地存储正在清理,但当我转到 设置- 如何像手动一样以编程方式清除应用程序数据?

  • 我的问题出在这里: 因为方法deleteApplicationCacheFiles为null,所以会显示我的toast消息。有什么建议吗?