これがあまりにもぎこちないことを願っています。データを待っている間に電話/アプリ/ UIをロックしたくないので、非同期Webサービス呼び出しを実装しました....しかし、プログラムの実行を継続したくないため、現在実行していてクラッシュしています.
私のアプリはサービスからデータを要求し、サービスはxmlドキュメントを返します。サービスがドキュメントを生成している間、私のプログラムは実行を続け、コードがファイルを探しているセクションに到達するとクラッシュします...まだそこにはありません。
だから私は、このシナリオのためにJavaで人がどのように/何をするかを知る必要がありますか? C#では、何をすべきか知っています。非同期呼び出しのコードは次のとおりです。問題があれば指摘してください。
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;
}
}
そして実装...はい、今のところハードコードされていることは知っています。
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;
}