2013-06-19 42 views
1

我想將Volley集成到我的項目中。但是,將數據保存到sqlite數據庫存在問題。在活動中執行保存操作(從Web服務獲得響應)還是在這裏使用裝載器模式更好?謝謝Android Volley SQLite集成/組合

回答

1

從線程角度來看,您可能不想在Android的主UI線程上將更改寫入數據庫,最好在單獨的線程中完成。我相信Volley的結果總是返回到主UI線程上(詳見Volley的ResponseDeliveryRunnable類)。

這意味着你可能要使用的執行人,或也許下面的代碼下車在主UI線程在Response.Listener:

AsyncTask.execute(new Runnable() { 
    public void run() { 
    // database insert here 
    } 
}); 

實際上它取決於你的應用程序的結構,你有DAO層和域對象,還是使用直接的SQL語句將數據從Web服務直接插入到數據庫中?我個人使用的是使用greenDAO ORM,它給了我的域對象和一個DAO,並簡單地確保在使用數據庫進行插入/刪除/更新時,我總是關閉Android Main UI線程。

+0

我正在使用contentproviders來處理數據庫。在Activity中使用ContentResolver還是在AsyncTask中做得更好? – itolianezzz

+0

這個問題證實了我的建議AsyncTask是一個很好的解決方案與ContentProvider - http://stackoverflow.com/questions/8392012/should-calls-to-a-content-resolver-be-done-in-a-service- ie-separate-thread – Syntax

+0

語法,謝謝。我會嘗試這種模式 – itolianezzz