Когда мое приложение запускается, я вызываю функцию Asyn Task.В фоновом процессе происходит включение трех API и их функций синтаксического анализа. Это займет около 10 минут времени.
В этом случае, если пользователь нажимает кнопку возврата по умолчанию для Android, то асинхронная задача используется для отмены.Чтобы избежать этого, я попытался заблокировать действие кнопки «Назад» следующим образом.
class First_Time_Sync extends AsyncTask<Void, Void, Void>
{
ProgressDialog dialog1 = new ProgressDialog(Progressss.this);
protected void onPreExecute()
{
backMode = true;
dialog1.setMessage("Welcome \nThank you for waiting.");
dialog1.setIndeterminate(true);
dialog1.show();
}
protected Void doInBackground(Void... arg0)
{
.................
return null;
}
protected void onPostExecute(Void unused)
{
backMode = false;
dialog1.dismiss();
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (backMode)
{
return true;
}
else
{
return super.onKeyDown(keyCode, event);
}
}
return super.onKeyDown(keyCode, event);
}
Теперь, когда вызывается функция асинхронной задачи и пользователь нажимает кнопку «Назад», индикатор хода выполнения отменяется.Но фоновый процесс продолжается, и кнопка «Назад» блокируется до тех пор, пока не завершится фоновый процесс.
Я хочу, чтобы индикатор выполнения отображался даже при нажатии кнопки «Назад», чтобы он не исчезал.
Как это сделать ......