You shall get a book or look on internet, there are some examples.
Don't hesitate also to look in source code of open source projects. like in
code.google.
http://code.google.com/hosting/search?q=android&projectsearch=Search+projects
What you're looking for is a handler.
Look in the Handler object documentation. Handlers are the nicest way to
send information back to your calling thread.
Besides, here is a helper class i'm often using :
package com.webyourdailyway.utils;
import java.io.IOException;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.HttpResponseException;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.impl.client.BasicResponseHandler;
import android.os.Handler;
import android.os.Message;
import android.util.Log;
public class HttpRunnable implements Runnable {
public static final int MESSAGE_OK = 0x01;
public static final int MESSAGE_ERROR = 0x02;
public final HttpClient client;
public final HttpUriRequest request;
public final Handler handler;
public HttpRunnable(HttpClient client, HttpUriRequest request,
Handler handler) {
super();
this.client = client;
this.request = request;
this.handler = handler;
}
public void run() {
try {
BasicResponseHandler responseHandler = new
BasicResponseHandler() {
public String handleResponse(HttpResponse response)
throws HttpResponseException, IOException {
String resp = super.handleResponse(response);
Message msg = new Message();
msg.what=MESSAGE_OK;
resp = new String(resp.getBytes(),"UTF-8");
msg.obj = resp;
handler.sendMessage(msg);
return resp;
}
};
client.execute(request, responseHandler);
} catch (ClientProtocolException e) {
Log.e("HTTP_TEST", "Couldn't connect to " + request.getURI(),
e);
Message msg = new Message();
msg.what=MESSAGE_ERROR;
msg.obj = e.getLocalizedMessage();
handler.sendMessage(msg);
} catch (IOException e) {
Log.e("HTTP_TEST", "Couldn't connect to " + request.getURI(),
e);
Message msg = new Message();
msg.what=MESSAGE_ERROR;
msg.obj = e.getLocalizedMessage();
handler.sendMessage(msg);
}
}
}
You use it like that :
client = new DefaultHttpClient();
String url = your url... ;
Log.d("Network","calling url "+url);
HttpUriRequest request = new HttpGet(url);
Handler handler = new Handler(){
public void handleMessage(Message msg) {
super.handleMessage(msg);
//Here is the piece of code executed in your main thread
when the http has been returned.
}
};
HttpRunnable runnable = new HttpRunnable(client, request, handler);
Thread thread = new Thread(runnable);
thread.start();
2009/4/20 kungfuslippers <[email protected]>
>
> Hi,
>
> I understand that if you want to display UI stuff from other than the
> main thread i.e. a separate thread - you can use some form of Handler
> classes post() method(s) to put a Dialog display (for example) in the
> event queue?
>
> Can anyone point me to some sample code or to where the usage is
> defined in the API docs?
>
> thanks
>
>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en
-~----------~----~----~----~------~----~------~--~---