Я мог бы только предложить использовать Asyntask <>
Вот вам примерный подход для понимания. Я просто хочу прокомментировать это, но у меня недостаточно репутации, чтобы сделать это.
AsyncTask<String, String, String> asyncTask = new AsyncTask<String, String, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
// ... Show a Progress Dialog or anything you want just to indicate that you
// ... are downloading ...
}
@Override
protected void onProgressUpdate(String... values) {
super.onProgressUpdate(values);
}
@Override
protected String doInBackground(String... strings) {
// ... Do Downloading or anything
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
// Post any codes to be followed here ...
Log.d("Download", "Download Complete")
}
}
asynTask.execute();