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; } }