aula_2012_07

Propaganda
Dentro da classe principal criar uma classe interna como a classe Sincro abaixo,
e depois invoca-a assim:
setProgressBarIndeterminateVisibility(true);
new Sincro().execute(new PostData(url, dados));
onde a classe PostData tens que ter 2 campos:
url - uma string com o url
dados - do tipo seguinte e devidamente preenchido: Hashtable<String,String>
dados= new Hashtable<String,String>();
public class Sincro extends AsyncTask<PostData, Integer, HttpData> {
@Override
protected HttpData doInBackground(PostData... params) {
Log.i("LOGGER", "Sincro Starting...");
HttpData dados = null;
try {
dados = HttpRequest.post(params[0].url, params[0].dados);
} catch (Exception e) {
e.printStackTrace();
}
return dados;
}
protected void onProgressUpdate(Integer... progress) {
}
@Override
protected void onPostExecute(HttpData dados) {
Log.i("LOGGER", "...Done");
setProgressBarIndeterminateVisibility(false);
if(dados.content.length()==0) {
Toast.makeText(act, getResources().getString(R.string.no_data),
Toast.LENGTH_LONG).show();
return;
}
JSONObject json = null;
try {
json = new JSONObject(dados.content);
//Log.d("LOG", json.toString());
poeDados(json);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
--------------import java.util.Hashtable;
public class PostData {
public String url;
public Hashtable<String,String> dados;
public PostData(String url, Hashtable<String,String> dados){
this.url = url;
this.dados = dados;
}
}
Download