Androidでアプリケーションを開発しています。アプリケーションは、HTTP 要求を特定の Web サーバーに送信できます。その投稿リクエストは非同期で実行する必要があるため、ジョブを実行するためのスレッドを作成します。しかし、スレッドの最後に呼び出されるコールバックが必要で、`post` メソッドを呼び出すスレッドから呼び出される必要があります。
私のpost
方法は次のようになります。
interface EndCallback
{
public void Success(String response);
public void Fail(Exception e);
}
public void post(final String url, final List<NameValuePair> data, EndCallback callback)
{
Thread t = Thread.currentThread();
(new Thread()
{
public void run()
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
try
{
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse r = httpclient.execute(httppost);
HttpEntity en = r.getEntity();
String response = EntityUtils.toString(en);
//I want to call callback.Success(response)
//here from thread t
}
catch (Exception ex)
{
//And I want to call callback.Fail(ex)
//here from thread t
}
}
}).start();
}