Я загружаю данные с сайта, используя asynctask
и
мой код для асинхронной задачи ниже
public class getSyncTaskInBackground extends AsyncTask<Void, Void, Void>{
@Override
protected Void doInBackground(Void... params) {
getSynchronizeTask();
return null;
}
@Override
protected void onPostExecute(Void result) {
if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
displaySynchronizetask();
super.onPostExecute(result);
}
@Override
protected void onPreExecute() {
progressDialog = ProgressDialog.show(synchronize.this, "Tasks are synchroning...", "Please wait...");
super.onPreExecute();
}
@Override
protected void onCancelled() {
super.onCancelled();
if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
}
}
}
эта тема занимает больше времени для завершения задачи
так что если я хочу отменить этот поток между процессами, то я должен был написать этот код нажатой кнопки возврата
или если прогрессбар уже отклонен, то я хочу закрыть активность, вызвав finish();
мой код для кнопки возврата, как показано ниже
@Override
public void onBackPressed() {
syncThread.cancel(true); //syncThread is the object of getSyncTaskInBackground
if(progressDialog != null && progressDialog.isShowing()) {
progressDialog.dismiss();
} else {
finish();
}
}
Теперь, когда я нажал кнопку "Назад", progressdialog
не исчезает
есть какая-то ошибка в моем коде? есть ли способ удовлетворить мою потребность?
пожалуйста, помогите мне