私は、毎日のユーザーのデータを記録するWebアプリとモバイルアプリを含むプロジェクトに取り組んでいます。ユーザーはデータを削除、更新でき、多くのデバイスを使用してデータを挿入できます。
私はこのように開発するつもりです:
ユーザーがデータを入力してからSQLiteに挿入します。タイムスタンプを使用してMySQLと同期するために、サービスが定期的に(5時間またはsthごとに)開始されます。
インターネットでサービスとタイムスタンプを使用してサンプルを検索しましたが、何も見つかりませんでした。サンプルやチュートリアルがあれば素晴らしいと思います。
私はAndroidで初めてですが、このようなアプリを開発するための最良の方法がわかりません。よろしくお願いします。
----編集----
タイムスタンプまたは同期の使用を検討しています。どちらがより効果的ですか?
volley
library bygoogleまたはその他のlibraries
を使用できます。データの送信方法によって異なりますが、最善のアプローチはJSON
を使用して生活を送ることです。より簡単に、バックエンドと同期したいsqliteからデータを取得し、ボレーを使用して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.
});
uは、値がローカルデータベースから同期されているかどうかを示す新しい値を追加できます。たとえば、studentというテーブルがあり、このテーブルにID、NAMEの3つの列があり、応答が成功したときに上記のコードで同期された場合、その行の同期列を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);
}
AFAIKの最も簡単な方法は、 http://loopj.com/Android-async-http/ またはvolley lijek0shのようなlibを使用してデータをPHPスクリプトに送信することです。 mysqlデータを管理します。データを受信するには、サーバーにphp(またはJava)スクリプトを作成する必要があります(REST APIを作成する必要があります)
HTTP libを選択するには、次を参照してください。
バッテリーを消耗する可能性があるため、データを同期する方法に本当に注意する必要があります。ここでは、更新を最適化する方法を学習します。
https://developer.Android.com/training/efficient-downloads/index.html
それが役に立てば幸い!