J'ai besoin d'appeler une API pour obtenir une donnée json en utilisant Android volly. J'ai un procédé mis en oeuvre à l'intérieur de la classe A pour appeler la requête get comme indiquéVolly: Implémentation des méthodes en suivant le principe DRY
class A{
public static String getList(Context context,String url)
{
final String[] result = new String[1];
JsonArrayRequest req = new JsonArrayRequest(url,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray response) {
Log.e("response",response.toString());
result[0] =response.toString();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("responseerror",error.toString());
result[0] =error.toString();
}
});
MySingleton.getInstance(context).addToRequestQueue(req);
return result[0];
}
}
intérieur classe B je suis accesing cette méthode
class B {
String responce= A.getList(activity,url);
}
Ici, je peux passer le contexte et l'URL pour obtenir des données JSON. Mais le problème est que la méthode getList() ruturs aboutit avant même d'avoir une réponse du serveur. L'application a plus d'une classe qui doit appeler obtenir une demande. Si je vais utiliser cet extrait de code à l'intérieur de chaque classe, alors ce sera contre le principe DRY. Alors, quelle est la procudure appropriée à suivre dans ce scénario?