更好地覆盖内存中的数据或首先读取以进行检查

时间:2014-10-09 21:59:16

标签: java android memory-management sharedpreferences

我的问题特别针对android。我正在使用共享首选项在设备上本地保存一些数据。每次我打电话给服务器时,响应可能是新的,也可能是我已经持久的相同内容。没有改变问题的问题,什么是更好的设计?

one:检查数据是否存在,然后添加?

if(!getFromSharedPrefs(dataKey).equals(newData)){
  addToSharedPrefs(dataKey, newData);
}

二:每次只是添加新数据,因为覆盖并不比阅读更贵?

addToSharedPrefs(dataKey, newData);

请说明为什么最好先检查一下,或者为什么这两种方法是等效的。

我假设答案是平台或设备不可知的,所以如果你知道objective-c或java或者其他什么,它应该无关紧要(?)

1 个答案:

答案 0 :(得分:0)

数字2.原因如下:(假设addToSharedPrefs(...)只是更新map-ish数据结构中的引用而不进行一些进一步的网络调用或大量计算,这是没有意义的,但只是在case ...)你正在检索哪种方式,这是昂贵的,但第一种方式也调用你的数据对象上的equals(),这可能是昂贵的,它可能不是一个巨大的差异,但这样你就消除了