Android – La mejor manera de sincronizar SQLite con MySQL

Estoy trabajando en un proyecto que contiene aplicaciones web y aplicaciones móviles que registran los datos de los usuarios diarios. El usuario puede eliminar, actualizar sus datos y puede utilizar muchos dispositivos para insertar datos.
Tengo la intención de desarrollar de esta manera:
El usuario introduce sus datos e inserta a SQLite. Un servicio se iniciará periódicamente (cada 5hr o algo) para sincronizar con MySQL usando timestamp.
Hice la búsqueda de una muestra utilizando el servicio y timestamp en Internet, pero no encontré nada. Sería genial si hay una muestra o tutorial.
Soy nuevo en Android y no tengo ni idea de cuál es la mejor manera de desarrollar una aplicación como esta. Gracias por adelantado.

—-EDITAR—-
Considero el uso de timestamp o sincronizado. ¿Cuál es más eficaz?

2 Solutions collect form web for “Android – La mejor manera de sincronizar SQLite con MySQL”

Usted podría utilizar la biblioteca volley por google o cualquier otra libraries , depende de cómo desea enviar los datos, el mejor enfoque es que utiliza JSON para hacer su vida más fácil, obtener los datos de sqlite que te gusta sincronizar con su backend Y enviarlo a través de JsonObjectRequest utilizando volley, por ejemplo, su solicitud puede verse así

 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 podría agregar un nuevo valor que indica si el valor se ha sincronizado o no desde su base de datos local. Por ejemplo, digamos que tienes una tabla llamada student y esta tabla tiene tres columnas que son ID, NAME y sincronizadas en código anterior cuando tu respuesta devuelve éxito actualiza esa columna de fila sincronizada con true | false que indica si esta fila se sincroniza con tu backend o no. Y para obtener los datos de su base de datos debe hacer algo como esto.

 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); } 

La manera esieast AFAIK es usar un lib como http://loopj.com/android-async-http/ o volley lije k0sh dice enviar datos a un script PHP que te administrará datos mysql. Tendrás que escribir un script php (o java) en tu servidor para recibir tus datos (deberías escribir una API REST)

Para seleccionar su HTTP lib, debe buscar aquí:

¿Cuál es la biblioteca HTTP más robusta para Android?

Realmente debe preocuparse por cómo va a sincronizar sus datos, ya que podría drenar su batería. Aquí aprenderá cómo optimizar sus actualizaciones:

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

¡Espero eso ayude!

  • Utilizando un botón para exportar sqlite db a un archivo excel-readable (quizás csv)?
  • ¿Cómo puedo almacenar datos de las pocas aplicaciones en un solo lugar?
  • Base de datos H2 vs SQLite en Android
  • ActiveAndroid Relación de muchos a muchos
  • ¿Puede el androide sqlite interfaz ser utilizado fuera de Android
  • Permitir sólo la entrada de datos únicos con Android SQLite?
  • Podemos usar truncar consulta en android sqlite
  • Cambiar el nombre de la tabla en sqlite
  • SQLiteDatabase transacción anidada y solución alternativa
  • La base de datos no se copia correctamente en OnePlus Two
  • Cómo almacenar la base de datos sqlite directamente en sdcard
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.