SharedPreference 或 Sqlite 缓存与网络缓存混淆

SharedPreference or Sqlite Caching and Network Caching Confusion

在 android 和 robospicepicasso 等库中选择存储选项后,我有点卡在这里或者说糊涂。

我最近在我的 android 应用程序中实现并使用了所有这些,我也理解了 sharedPreference 和 Sqlite 的概念。

但是,当谈到 RoboSpice 时,我有点困惑,因为它缓存了数据,但是当应用程序被终止并再次启动时,它再次访问服务器相同的数据,而不是从缓存中使用它。

毕加索相同的情况。

Robospice 和 Picasso 的缓存与 sharedPreference 和 Sqlite 有何不同?

他们的缓存数据存储在哪里?如果不在某些文件中,比如在设备主内存中,那么当应用程序重新启动时它们不会再次使用。

Picasso 使用 http 客户端缓存,并且只缓存静态数据,比如图像,那也是 fine.But,如果是像 robospice 这样的网络库,他们使用什么类型的缓存。它是否像 sharedPref 一样存储在某个文件中?应用重启后可以使用吗?同样在毕加索的情况下,http缓存是否会在应用程序重新启动后可用?

任何有关此主题的帮助或指南将不胜感激。

Shared Preferences 和 Sqlite 恰好与 HTTP 缓存非常不同。您使用前两个在应用程序会话之间保留数据。

如果您希望可以通过网络获取数据并将其保存到共享首选项或 sqlite,那么您将在这些层之上创建自己的缓存系统。但是,当您这样做时,您将无视 Web 应用程序或 HTTP 服务器的意愿。

另一方面,如果内容已过期,HTTP 客户端库必然会与 Web 服务器核对,如果是动态生成的内容,Web 服务器很可能会告诉它内容确实已过期已到期。所以他们别无选择,只能重新获取数据。