0

我需要存储来自网络的本地化数据,这些数据以JSON字符串形式出现。到目前为止,我有一个DataAdapter期望 a 中JSONObject的数据并收集数据以进行可视化的数据。但现在我根本没有缓存。

我想存储上次调用的数据,包括Etag用于观察变化的数据。所以我想首先显示缓存的数据,并在网络上查看是否有一些更改,并尽可能显示它们是可行的。我看到有三个选项:

我不确定哪种方式最有效......我还想存储/缓存图像。顺便说一句,我还希望到目前为止数据已加密,存储系统不能直接在闪存上写入任何数据,几秒钟后又会出现另一组数据。而且我想节省电池。

哪种存储数据的能源效率最高?
哪种方式存储数据最快?

4

2 回答 2

0

对于小型 Web 服务请求,您可以使用ResponseCache。在处理较大的对象时,您可能希望创建自己的缓存。

您还可以:

  • 序列化数据并保存到本地文件
  • 对于基本数据,如果要存储更长的时间,您可以将其保存在SharedPreferences中
  • 如果您有大量数据并且需要对其执行关系操作,请使用 sqlite。

有关图像缓存,请参阅:

Android 图像缓存

Android:图像缓存策略和内存缓存大小

于 2012-11-02T11:54:29.113 回答
0

我的解决方案是扩展一个LruCache我覆盖sizeOf函数以获得实际大小的位置。

对于Drawables,我使用以下代码:

if(rawdata  instanceof BitmapDrawable) {
    Bitmap bmp = ((BitmapDrawable)rawdata).getBitmap();
    mem += bmp.getRowBytes() * bmp.getHeight();
}
于 2012-12-10T14:42:41.590 回答