static class MyLongTask extends AsyncTask<String, Void, Void> { WeakReference<MyActivity> context; public MyLongTask(MyActivity activity) { context = new WeakReference<MyActivity>(activity); } @Override protected void onPreExecute() { // Avísele al usuario que estamos trabajando } @Override protected Void doInBackground(String... params) { while(! isCancelled() ){ // Aquí hacemos una tarea laaarga // Y ademas chequeamos que la tarea no ha sido cancelada } return null; } @Override protected void onPostExecute(Void result) { MyActivity activity = context.get(); if (activity != null && !activity.isFinishing()) { // Aquí actualizamos la UI con el resultado } } }
public class ExampleRestClient {
private static final String SERVER_RELEASE = "";
private static final String SERVER_TESTING = "";
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 SERVER_RELEASE + relativeUrl;
}
}
ExampleRestClient.get(Request.LOGIN, null, new JsonAsyncHttpResponseHandler(Request.LOGIN) {
ProgressDialog progressView;
@Override
public void onStart() {
super.onStart();
progressView = new ProgressDialog(getContext());
progressView.setIndeterminate(true);
progressView.setCancelable(false);
progressView.setMessage("Iniciando sesión");
progressView.show();
}
@Override
public void onSuccess(Object response) {
super.onSuccess(response);
Message m = (Message) response;
if (m.getResult().equals("OK")) {
} else {
}
}
@Override
public void onFailure(Throwable e, Object errorResponse) {
super.onFailure(e, errorResponse);
Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
}
@Override
public void onFailure(Throwable error, String content) {
super.onFailure(error, content);
Toast.makeText(getContext(), "Ha habido un problema de conexión. Vuélva a intentarlo", Toast.LENGTH_SHORT).show();
}
@Override
public void onFinish() {
super.onFinish();
progressView.dismiss();
}
});
T'ho dic desde el telefon molt rapidament, a casa amplio!
El que et recomano es seguir el exemple google, es a dir:
Activity:
... Loader -> Content Provider -> BBDD
... Servei -> Dades -> toBBBD
D'aquesta manera, el servei actualitza les dades, i al fer els inserts al CP, ell mateix actualitza les dades amb el cursor :)
--
Hazte miembro en la web del GDG ( http://goo.gl/ngNRi ), y para no perderte nada sigue al GDG Barcelona en Google+ ( http://goo.gl/f3xo4 ), Twitter ( twitter.com/GDGBarcelona ), y su blog ( http://gdgbarcelona.blogspot.com.es/ )
---
Has recibido este mensaje porque estás suscrito al grupo "GDG Barcelona" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a gdg-barcelon...@googlegroups.com.
Para publicar una entrada en este grupo, envía un correo electrónico a gdg-ba...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
Rest Template internamente comprueba la versión de Android y automaticamente te conecta con HttpClient para Froyo e inferiores y UrlConnection para superiores
--
-------------------------------------------------------------------------------------------Jc Miñarro