Android Http请求 - 如何禁用缓存

时间:2015-06-06 00:23:37

标签: android mysql caching android-asynctask apache-httpclient-4.x

我开发了一个应用程序,可以创建用于会议活动的组,并以这种方式工作:

  1. 在列表视图(属于活动A管理的片段A)中,应用程序显示所有组。此列表视图由AsyncTask填充,该AsyncTask将 HTTP GET请求(使用 Apache HTTPClient )发送到Restful WS。
  2. 在此活动(活动A)中,用户可以转到另一个活动(活动B)以创建新组。为了创建一个新组,该应用程序使用另一个AsyncTask,它将 HTTP PUT请求发送到同一个WS。
  3. 创建组后,用户将被重定向回活动A,以便查看应包含新组的可用组。
  4. 问题是我得到了上面的项目1 中显示的相同列表。此列表仅在我单击刷新按钮几次后刷新,就好像它有某种缓存一样。

    我试图避免缓存的解决方案,但未成功:

    1. 使用交易source)使数据库中的插入更快(我正在为群组执行大约10/20插入)(我正在使用 InnoDB引擎)。
    2. 使用 SQL_NO_CACHE source)阻止 MySQL 将结果放入缓存中(我使用它来获取组列表 - 活动A )。
    3. 添加 HTTP GET请求以下标题“缓存控制:无缓存”(source 1source 2)(i使用它来获取组列表 - 活动A)。
    4. 每当用户离开活动A时清除应用程序缓存(source),以便当他从活动B返回时获取已包含新组的组列表。
    5. 仅当用户创建新组时尝试获取活动B中的组列表时才有效。在这种情况下,WS返回包含新组的更新列表。之后,如果我返回活动A,则会再次显示过时的列表。

      如何阻止在活动A中使用缓存?

      由于

1 个答案:

答案 0 :(得分:0)

尝试使用当前时间以毫秒为单位添加参数

类似的东西:

String myurl="http://example.com/myserv.php?getit=labla&currenttime="+System.currentTimeMillis();