2012-04-26 101 views
25

为什么我们在android.I中使用sqlite数据库,我正在开发一个android应用程序,在这个应用程序中要从服务器获取数据并进行一些数据计算并在UI上显示它。为什么要在Android中使用sqlite数据库?

对我来说,将数据提取到sqlite数据库并在evry的sqlite中定期更新用户界面20分钟是好事,还是将Http get请求发送到服务器并更新数据在用户界面上的响应。

我想知道哪一个更好,为什么?为什么要涉及sqlite数据库? 这些数据对应于某些40X40表格数据,在这些数据上要进行一些重要的数学处理,然后在UI上显示(类似于股票市场应用程序),并且需要在每12小时后清除数据。 PLZ建议 RGDS, 劳尔

回答

24

在你的情况下使用数据库是很好的。

优点:

  • 如果您的应用程序被关闭内存中的数据会丢失,但在那之后,你将能够从,如果你有一个
  • 特别是对于情况下,数据库恢复状态复杂的计算这是好事,在数据库中存储一次的结果,而不是多次重新计算需求
  • 数据库将解开从互联网连接你的用户界面,因此,您将能够显示的结果,即使没有互联网连接
  • 使用数据库,你将能够从后台服务获取更新的数据,而不会影响你的UI
  • 在数据库中组织数据通常使人们更方便管理所有的应用程序数据。

缺点:

  • 添加数据库将需要在你的身边

一点额外的努力正如你可以看到我的名单证明你应该在你的情况下使用的数据库。也许我有偏见,但至少我会提供给你一些需要考虑的事情。

0

12小时的时间很长,因此而不是让您的数据徘徊在RAM,我建议你使用的数据库。因为你永远不知道什么时候你可能需要再读一遍。否则,如果你的目的只是为了下载数据,处理它并显示在活动中,那么你不需要涉及数据库,因为如果你的应用程序是关闭的(由于用户或内存不足),反正你的应用程序将是从服务器下载新的数据...我是对的吗?

+0

是数据将被添加(自动请求将每30分钟后,被发送到服务器(配置),当用户希望看到的UI数据他必须手动按下/触摸这将显示数据(计算之后),如果他TEH配置的时间之前按压数据将如果他按下它> 30分钟相同并且如果一些用户界面按钮,他将getthe最新的数据。 – Raulp 2012-04-26 08:54:33

+0

那么我不认为你需要把数据库的麻烦在您的要求。它非常简单和直接的事,而不做数据库我 – waqaslam 2012-04-26 08:57:06

4

这确实是一个设计决策,SQLite提供了一种组织和保存数据的非常稳健的方法,您只有其他选择是写入文件或保存在SharedPrefs中,这两种方法都变得难以管理一旦数据的大小开始增长,因为您必须手动保存对象列表并管理其名称等等等等。40 x 40表数据足够大,足以证明使用SQLite是合理的,即使您每12次删除并重新创建表小时。

你可能要考虑使用ORM库提取出并从数据库中保存的数据更简单,ORMLite是好的,与Android

http://ormlite.com/

+0

可以使用它的Android?有多好,这将是FR om sqlite?为什么比Sqlite更喜欢?Sqlite是内置的,这是外部的(我可能必须使用它的jar) – Raulp 2012-04-26 08:52:47

+2

@softy Ormlite只是辅助库,应该使它更容易使用SQLite(使对象关系映射) 。基本上这样你就不必担心写/读程序。我在Android中使用它。此外,添加额外库的性能影响不显着。 – 2012-04-26 08:57:55

3

兼容。如果你的应用在很大程度上依赖互联网连接你不需要在数据库中缓冲信息。然而,如果你想在你有坏或没有信号的地方使用应用程序,你可能想使用sqlite数据库中的缓存值。 由于互联网连接速度较慢,您的应用程序可能无响应,因此缓存可能是一个好主意 - 但它不一定在sqlite数据库中。您应该使用sqlite数据库来获取设备频繁需要的数据,这与您的服务器组件无关。 如果数据频繁更新,但仅在应用程序运行时您可能需要缓存设备内存。我假设你的应用程序并不是在12小时内全部运行,而是定期调用来检查某些内容。

0
> update the UI on regular interval from the sqlite in evry 20 minutes 

不要指望你的应用程序在这么长的时间内打开。

为了精确地建议你的情况

Avoid DB 

Fetch Data at app start or at appropriate time when app is opened 
and save it in plain java objects. 

Define Methods within it that perform operation in it. 

Make map or list to save those POJO 

Define Seprate Controller Classes within your project to update map of pojo at any  
specific change to make fresh data available to UI. 
+0

取当应用被打开 在应用数据开始或在适当的时间,并将其保存在普通的Java对象。 >>>>>>>>>为40X40数据创建/组织数据在普通的java对象中是否良好? ,是的,它可以通过列表或词典来映射。 – Raulp 2012-04-26 08:57:14

+0

创建子类并使用其中的DataStructure。所有东西都可以通过OOPS进行构建,即使它是80X80 – Javanator 2012-04-26 09:04:22

相关问题