2012-04-26 100 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

相關問題