Блокировать кнопку возврата Android во время выполнения задачи Asyn

Когда мое приложение запускается, я вызываю функцию 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);
    }

Теперь, когда вызывается функция асинхронной задачи и пользователь нажимает кнопку "Назад", индикатор выполнения отменяется. Но фоновый процесс продолжается, и кнопка "Назад" блокируется, пока не завершится фоновый процесс.

Я хочу, чтобы индикатор выполнения отображался, даже если нажата кнопка "Назад", чтобы он не исчезал.

Как это сделать......

1 ответ

Решение

Вам нужно будет установить свойство Cancelable диалога в false

dialog1.setCancelable (false);

Это не позволит клавише Back отменить ваш диалог

Другие вопросы по тегам