Используйте AsyncTask для выполнения сетевых операций
public class TalkToServer extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
/*
* do things before doInBackground() code runs
* such as preparing and showing a Dialog or ProgressBar
*/
}
@Override
protected void onProgressUpdate(Void... values) {
/*
* updating data
* such a Dialog or ProgressBar
*/
}
@Override
protected Void doInBackground(Void... params) {
//do your work here
return null;
}
@Override
protected void onPostExecute(Void result) {
/*
* do something with data here
* display it or send to mainactivity
* close any dialogs/ProgressBars/etc...
*/
}
}
И вы можете выполнить его, используя
TalkToServer myTask = new MyTask(); // can add params for a constructor if needed
myTask.execute(); // here is where you would pass data to doInBackground()
После завершения сетевого вызова и вызова полученного ответа onPostExecute()
.Если AsyncTask
относится к внутреннему классу вашего activity
, вы можете обновить пользовательский интерфейс внутри onPostExecute()
.В противном случае вы можете использовать Interface
для создания callback
до activity
.
Вы можете найти AsyncTask Docs
здесь