J'espère que ce n'est pas trop de charabia. J'ai implémenté un appel de service Web Async parce que je ne voulais pas que le téléphone/l'application/ui se verrouille en attendant des données ... mais je ne veux pas que le programme continue d'exécuter ce qui est en train de se faire et de se bloquer .Appel de service asynchrone doit mettre en pause
Mon application demande des données du service et le service renvoie un doc xml. Pendant que le service génère le document, mon programme continue à s'exécuter et tombe en panne lorsqu'il arrive à la section où le code recherche le fichier ... ce n'est pas encore le cas.
J'ai donc besoin de savoir comment/quoi fait une personne dans Java pour ce scénario? En C#, je saurais quoi faire. Voici le code de l'appel asynchrone et n'hésitez pas à signaler tout problème.
public class DataExchangeServiceClient
{
private static final String BASE_URL = "http://www.icyarmtesting.com/";
private static AsyncHttpClient client = new AsyncHttpClient();
public static void get(String url, RequestParams params, AsyncHttpResponseHandler responseHandler)
{
client.get(getAbsoluteUrl(url), params, responseHandler);
}
public static void post(String url, RequestParams params, AsyncHttpResponseHandler responseHandler)
{
client.post(getAbsoluteUrl(url), params, responseHandler);
}
private static String getAbsoluteUrl(String relativeUrl)
{
return BASE_URL + relativeUrl;
}
}
puis l'implémentation ... oui je sais qu'il est codé en dur pour l'instant.
protected static boolean GetExerciseData() throws JSONException
{
RequestParams params = new RequestParams();
params.put("Action", "");
params.put("ProgramID", "8008009");
params.put("UserName", "joex");
params.put("Password", "dude!");
DataExchangeServiceClient.get("liftdataexchange.xamlx", params, new JsonHttpResponseHandler()
{
@Override
public void onSuccess(JSONArray timeline)
{
try
{
JSONObject firstEvent = (JSONObject) timeline.get(0);
String XML_DOC_String = firstEvent.getString("text");
}
catch(JSONException jse)
{
}
//send it off to become a document
}
});
return true;
}
Eh bien, pour être honnête avec vous, j'ai regardé Robospice parce que j'ai commencé avec l'AsyncTask Android et obtenait de nombreuses erreurs. Robospice avait l'air génial mais je me suis perdu en essayant de déchiffrer les trois bibliothèques dont j'avais besoin. C'est tout un nouveau monde pour moi et même si je n'ai pas peur d'apprendre je ne suis pas encore capable de déchiffrer une grande quantité d'informations complexes spécifiques au monde java. – GPGVM
Bien pour nous donner cette rétroaction. Nous construisons actuellement une nouvelle façon d'aider les développeurs non-robots à utiliser RoboSpice: nous fournissons des échantillons simples et vous pouvez facilement les transformer en un projet ADT standard en utilisant ant. Voulez-vous essayer cela? – Snicolas
Absolument. Je suis prêt à aider. Si vous cherchez un utilisateur stupide, je suis votre homme. Honnêtement, j'ai été un développeur C# .NET pendant 15 ans, donc je suis assez à l'aise avec le développement en train d'apprendre un nouvel environnement (Eclipse) et la langue (Java). – GPGVM