ProgressDialog перестает отвечать на запросы - PullRequest
0 голосов
/ 23 декабря 2011

Я использовал ProgressDialog в приложении для Android.У меня есть логин, пароль и Loginbtn в основной форме, при входе в систему я перехожу на следующий экран, вход в систему осуществляется на основе Интернета и веб-домена, то есть при входе он отправляет запрос на онлайн-сервер с файлом php, который возвращает trueили false, и затем он переходит к следующему экрану.Я хочу использовать ProcessDialog, если он не получает истину или ложь от сервера, и если он становится ложным, колесо должно прекратить обработку, и оно должно показать сообщение о том, что неверное имя пользователя или пароль, и если оно становится истинным, после получения истины это должно завершить процессдиалоговое окно и перейти к следующему экрану, прямо сейчас ProcessDialog работает, но когда мы нажимаем, я просто запускаю диалоговое окно для работы, а затем автоматически намеренно переходит к следующему экрану, но если мы нажимаем кнопку назад, он по-прежнему показывает вращение диалогового окна процесса.я просто хочу использовать processDialog правильно.Мой код

//start
 progressDialog = new ProgressDialog(DomainDownManagerActivity.this);
             progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
             progressDialog.setMessage("Loading...");
             progressDialog.show();
             progressDialog.setProgress(100);

> if (v==true){ 
//v has true 
 Intent intent = new Intent(DomainDownManagerActivity.this,MainPanelActivity.class);

startActivity(intent);

    }

    else{
    //set label of invalid user or pass
    }

Изображение прикреплено enter image description here

1 Ответ

1 голос
/ 23 декабря 2011
// write this line  `new SomeTask(0).execute();`  in your loginBtn.onCLick 
/** Inner class for implementing progress bar before fetching data **/

  private class SomeTask extends AsyncTask<Void, Void, Integer> 
    {
        private ProgressDialog Dialog = new ProgressDialog(yourActivityClass.this);
        @Override
        protected void onPreExecute()
        {

        Dialog.setMessage("loading...");
        Dialog.show();
    }

    @Override
    protected Integer doInBackground(Void... params) 
    {


           //Task for doing something 
 //   get data from php server if true then return

            return 0;
    }

    @Override
    protected void onPostExecute(Integer result)
        {



       if(result==0)
            {
//do some thing if true
Intent intent = new Intent(DomainDownManagerActivity.this,MainPanelActivity.class);
startActivity(intent);
            }

    // after completed finished the progressbar
            Dialog.dismiss();
        }

    }
...