Amigos,
Como é sabido não é possível abrir uma conexão com servidorWeb em uma thread principal(MainThread). Seguir os passos da aula de integração do Instrutor Jeferson Silva. A minha dúvida é a seguinte, eu não estou salvando um objeto em uma lista eu simplementes faço a conversão direta para Json e envio para o servidorWeb através da Classe Webclient(Explicada no curso de integração usando androidStudio).O app consistem em preencher um formulário atráves de uma classe de cadastroCarona e pego os campos do formulário preenchido pelo o usuário e transformo em um Objeto chamado de carona(Origem,destino etc). Até aí tudo bem, eu consigo criar o objeto e converter em uma string "json""(Testado) porém eu preciso criar uma outra classe para tratar a conexão(Lembrando do problema da MainThread) que neste caso dei o nome de EnviarCaronaTask nesta classe eu abro a conexão com webserver: WebClient client = new WebClient(); e faço um post:String resposta = client.post(json); Nesta linha que estou "preso" como faço referencia ao arquivo json criado na Classe cadastroCarona, que contem o objeto criado e convertido para enviar para o servidor?
Classe CadastrarCarona:
public class CadastrarCaronaActivity extends AppCompatActivity {
private FormularioCadastroCaronaHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_cadastrar_carona);
helper = new FormularioCadastroCaronaHelper(this);
Button botaosalvar = (Button) findViewById(R.id.botao_cadastrar_carona);
botaosalvar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Carona carona = helper.pegaCarona();
CaronaConverter conversor = new CaronaConverter();
String json = conversor.converteParaJSON(carona);
new EnviaCaronaTask(CadastrarCaronaActivity.this).execute();
finish();
}
});
Classe EnviarCaronaTask:
public class EnviaCaronaTask extends AsyncTask<Object, Object, String> {
private Context context;
public EnviaCaronaTask(Context context){
this.context = context;
}
@Override
protected String doInBackground(Object... params) {
WebClient client = new WebClient();
String resposta = client.post(json);<<<<Minha Dúvida!!!!
return resposta;
}
@Override
protected void onPostExecute(String resposta) {
Toast.makeText(context,resposta, Toast.LENGTH_SHORT).show();
}
}