2

我的应用程序有点问题,我使用 .txt 文件来获取正确的 URL 以显示应用程序应显示的图片。一切正常。但是,如果我更改远程 .txt 文件的内容,应用程序会再次加载相同的图片。这是从远程获取图片的代码。

private ArrayList<String> getPictures(){
    fileList.clear();
    try {
        URL url = new URL("http://server.com/test.txt");
        BufferedReader in = new BufferedReader(new InputStreamReader(
                url.openStream()));
        String str;
        while ((str = in.readLine()) != null) {
            fileList.add(str);
        }
        in.close();
    } catch (MalformedURLException te) {
        finish();
    } catch (IOException tt) {
        finish();
    }
    return fileList;
}

所以我不知道为什么它没有得到新的内容,因为每次调用该方法时我都会清除 ArrayList!

我希望有人能解决这个问题,这很烦人。

/edit:忘记发布包含适配器的方法,所以这里是:

private String getAnImageUrl() {
    getPictures();
    ArrayAdapter<String> arrAdapt = new ArrayAdapter<String>(this, R.layout.main, fileList);
    arrAdapt.setNotifyOnChange(true);
    i++;
    if (i >= arrAdapt.getCount()) {
        i = 0;
    }
    return test = arrAdapt.getItem(i).toString();
}
4

1 回答 1

1

是的,我在自己的应用程序下载一些 JSON 时遇到了这种情况。修复它的最简单方法是向您的 URL 请求添加一个随机参数,如下所示:

String urlString = "http://server.com/test.txt?" + System.currentTimeMillis();
URL url = new URL(urlString);

这会将当前系统时间作为参数添加到您的 url,这将绕过页面的任何缓存版本

于 2013-05-17T13:06:41.067 回答