Voleadas asincrónicas en android SyncAdapter

He implementado SyncAdapter utilizando volley biblioteca. Está funcionando, pero luego me di cuenta de que estoy llamando código asíncrono (solicitud de volea) del método onPerformSync.

  • Q1: coudl be onPerformSync ejecutado varias veces en paralelo? (Para un usuario / una autoridad). ¿Es necesario escribir el código interno concurency seguro? Usar bloqueo ¿sincronización? SyncAdapter no se sincroniza por sí mismo, por lo que cualquier sincronización interna sería inútil?
  • Q2: es onPerformSync hilo seguro, ¿qué hilo? Me parece que todas las llamadas onPerformSync se hizo por la misma referencia de hilo. ¿Significa que SyncAdapter es realmente reutilizado por el sistema varias veces?
  • Q3: ¿es seguro terminar OnPerformSync antes de que el código de sincronización haya finalizado? (Llamadas de volea podría tomar mucho más tiempo que sólo crear solicitud de volea, ejecutarlo y terminar)
@Override public void onPerformSync(Account account, Bundle extras, String authority, ContentProviderClient contentProviderClient, SyncResult syncResult) { JsonObjectRequest jsObjRequest = new JsonObjectRequest (Request.Method.GET, url, null, new Response.Listener() { @Override public void onResponse(JSONObject response) { // time consuming code } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { // TODO Auto-generated method stub } }); // Access the RequestQueue through your singleton class. MySingleton.getInstance(this).addToRequestQueue(jsObjRequest); // onPerformSync end reached before volley request processing ends } 

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.