2010-09-20 133 views
4

我正在實現一個android應用程序,我不知道如何解決這個問題:當用戶點擊更新按鈕時,我想連接到我的服務器,並檢查數據是否有任何更新,如果有是,我想從服務器獲取數據並更新數據庫。我是否應該使用xml結構來檢查並從服務器獲取更新,或者是否有更智能的方法來實現這一點?如何從服務器獲取數據並使用它更新數據庫?

回答

5

是的,有一個更聰明的方法來做到這一點,但它需要在服務器和客戶端的一些工作。這就是它的工作原理:所有數據都應該可以用JSON或XML格式下載(我寧願選擇JSON)。所以,你會在服務器上有這樣的東西:http://example.com/resource.json。爲了知道是否有新版本的數據,你可以做的是向HTTP響應添加一個頭部版本(這樣你就不必下載和解析整個資源,以便知道是否有新版本)。

爲了讓您檢查這些標題,你就會有這樣的事情:

URLConnection urlConnection = null; 
try { 
    urlConnection = url.openConnection(); 
    urlConnection.connect(); 

    String currentVersionHeader = urlConnection.getHeaderField("your-version-header"); 
    if(currentVersionHeader == null) { 
     currentVersionHeader = "-1"; 
    } 

    int version = Long.parseLong(currentVersionHeader); 

    // then you compare with the old version 
    if(oldVersion < version){ 
     // download the data 
    } 
} catch (Exception e) {} 

下載和解析JSON資源是一些已經被處理,你會發現一堆教程和參考在谷歌和這裏。

你沒有提供服務器端的細節(是PHP?Java?.NET?),所以我也不會給你詳細說明如何實現/添加版本頭。我只是根據自己的經驗向你解釋了做這種事情的最好方法是什麼。

+0

感謝您的詳細解答。服務器端不是問題,我正在尋找主要想法,我現在得到它。再次感謝。 – dirhem 2010-09-20 22:56:54

相關問題