2014-11-03 25 views
4

我正在研究一個包含記錄每日用戶數據的Web應用程序和移動應用程序的項目。用戶可以刪除,更新他們的數據,他們可以使用很多設備來插入數據。
我打算開發這種方式:
用戶輸入他們的數據,然後插入到SQLite。服務將定期啓動(每5小時或某些時刻)使用時間戳與MySQL同步。
我確實在互聯網上使用服務和時間戳搜索樣本,但是我什麼也沒找到。如果有示例或教程,這將非常棒。
我是Android新手,我不知道開發這種應用的最佳方式是什麼。提前致謝。Android - 將SQLite與MySQL同步的最佳方式

----編輯----
我考慮使用時間戳或同步。哪個更有效?

回答

3

你可以通過谷歌或任何其他libraries使用volley庫,這取決於你想如何發送的數據,最好的辦法是,你使用JSON,使您的生活更輕鬆,得到源碼,你喜歡到數據通過後端同步,並使用凌空發送過來JsonObjectRequest,例如可按您的要求是這樣的

jsonObjectRequest postForm = new JsonObjectRequest(Request.Method.POST, URL, YourJsonData, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
     // here you can get your response. 
     },new Response.ErrorListener() { 
    @Override 
    public void onErrorResponse(VolleyError error) { 
    // here you can tell there is something went wrong. 
    }); 

ü可以添加一個新值指示值是否已同步或不從本地數據庫。例如,假設您有一個名爲student的表,並且此表有三列,分別是ID,NAME和上面代碼中的同步,當您的響應返回成功時更新該行同步列,其中true | false指示此行是否與您的後端同步或沒有。並從數據庫中獲取數據,你應該這樣做。

public String getStudents() { 
     List<Student> students = new ArrayList<Student>(); 
     String query = "SELECT * FROM " + STUDENT+ "where synced=0"; 
     SQLiteDatabase db = this.getWritableDatabase(); 
     Cursor cursor = db.rawQuery(query, null); 
     if (cursor.moveToFirst()) { 
      do { 
       Student st = new Student(); 
       st.setId(cursor.getString(cursor.getColumnIndex(ID))); 
       st.setName(cursor.getString(cursor.getColumnIndex(NAME))); 
       st.setSynced(cursor.getInt(cursor.getColumnIndex(SYNCED))); 
       students.add(st); 
      } while (cursor.moveToNext()); 
     } 
     db.close(); 
     return new Gson().toJson(students); 
    } 
+2

你應該替換st.setName(cursor.getString(1));通過cursor.getString(cursor.getColumnIndex(NAME))其中NAME是Sqlite列的名稱。 – 2014-11-03 02:00:43

+0

我應該使用時間戳還是同步?哪一個更好? – Foo 2014-11-03 02:12:09

+0

@JuliatzindelToro正確,謝謝你的提升。 – k0sh 2014-11-03 03:35:35

4

AFAIK的esieast的方法是使用一個lib像http://loopj.com/android-async-http/或凌空lije k0sh說,將數據發送到一個PHP腳本,將管理你的MySQL的數據。 你必須寫一個PHP(或Java)腳本在你的服務器接收數據(你應該寫一個REST API)

要選擇HTTP lib中,你應該看看這裏:

What is the most robust HTTP library for android?

你應該真的關心你將如何同步你的數據,因爲它可能會耗盡你的電池。 在這裏,您將學習如何優化更新:

https://developer.android.com/training/efficient-downloads/index.html

希望它能幫助!