2014-10-27 46 views
0

我以JSON的形式从服务器获取数据,并且必须在Listview中显示。现在我想知道的是,每次从服务器获取数据并直接显示在listview中会更好。或者我应该先检索数据 - >保存在sqlite>然后从那里填充它..是值得花费额外的努力涉及sqlite在应用程序?什么是正确方法:Json - > ListView或Json - > Sqlite - > ListView?

+0

如果你想要做缓存,同步,共享,或过滤,使用SQLite。否则,我真的看不到这一点。 – LightYearsBehind 2014-10-27 12:53:42

回答

1

如果你从一个RESTful API服务器获取信息(从它似乎什么的),你有两种方法:

如果您的服务器改变了数据经常

  • 获取来自服务器的信息。
  • 填充您的列表(不要将其保存在SQlite中)。

如果您的服务器需要一些时间来改变数据

  • 从服务器获得的信息。 (第1次)
  • 保存SQLite中
  • 填充在一段时间列出
  • 一次
    • 检查服务器,如果当前的数据散列有效
    • 如果是,什么都不做
    • 如果不是,重新开始这个cicle。

这是我的做法将使。

3

SQLiteDatabase仅用于存储数据。如果你不需要在设备上存储数据,我个人会认为你应该填充数据。

+0

这是一个意见,而不是一个答案。不是你的错,首先这是一个糟糕的问题。 – 323go 2014-10-27 13:09:51

0

如果每次你想,那么你应该使用SQLite选项去显示出类似的数据。 SQLite会将数据存储在本地的设备中,每次你没有从服务器获取数据,因此节省了响应时间。

0

可能有两个原因去“SQLite的缓存”,但最有可能你想在应用程序的后台状态加载数据。假设用户在加载数据时按下home按钮。然后,如果您直接在“活动”中执行此操作,那么当用户返回到您的应用程序时,他需要等待数据加载。另一方面,您可以将您的加载转移到服务中,将数据保存到SQLite中,然后在您的活动中从数据库加载数据。从用户的角度来看,这会让您的应用更加快速。但是在开发你的应用程序时你必须处理更多的组件。

1

正如其他人已经概述的那样,sqlite可以在你需要时存储数据,例如,在离线情况下。不过,我不建议将你的JSON数据缓存在sqlite中,因为你不得不花时间写存储层来获得缓存。我会推荐的是一个库,它已经为你缓存了数据,而且你不必关心存储。 例子:Robospice为Android(https://github.com/stephanenicolas/robospice/wiki/Starter-guide

相关问题