Para isso, podemos criar uma AsyncTask. Para isso, podemos criar uma classe que vá herdar a classe AsyncTask com três parâmetros: Params, Progress, Result. Abaixo temos um exemplo de código:
public class ActivityAsyncTask extends AsyncTask <URL, void, String>{
}
No código acima, estamos criando uma AsyncTask cujo parâmetros são:
- Um objeto URL como parâmetros gerais;
- Nada para gerenciamento de progresso;
- Uma String como resultado;
O próximo passo será definir o método "doInBackground", como mostra abaixo:
public class ActivityAsyncTask extends AsyncTask <URL, void, String>{
@Override
protected String doInBackground(URL... urls){
}
}
Note que o parâmetro do método doInBackground vai depender do que for passado na hora da definição da herança, neste caso, se definiu que na parte de parâmetros gerais, você deve passar URL, o parâmetro do método vai pedir para passar um array de URLs. Também observe que o retorno bate com o terceiro elemento definido, ou seja, uma String.
Mas o mais importante, o que faz este método? Este é o método principal para a nova thread. É aquela que vai ser executada em outra thread, logo, se quisermos fazer uma requisição HTTP, seria aqui que nós executaria essa requisição.
Uma vez que o processo seja concluído, o método onPostExecute será executado, recebendo o que for retornado no método doInBackground. É aqui que você definirá o que deve ser feito com o resultado:
public class ActivityAsyncTask extends AsyncTask <URL, void, String>{
@Override
protected void onPostExecute(String result){
}
}
Claro que o algoritmo não vai executar sem ser chamado. Para isso, onde você desejar iniciar o processo, você instanciará um objeto da classe AsyncTask que você criou e executará o comando execute. Exemplo:
public void randomMethod(URL url){
new ActivityAsyncTask().execute(url);
}
Por hoje é tudo.
Nenhum comentário:
Postar um comentário