ProgressDialog变得反应迟钝

时间:2011-12-23 12:33:32

标签: android android-layout progressdialog

我在Android应用程序中使用了ProgressDialog。 我在主窗体中有登录名,密码和Loginbtn,当我登录时,我移动到下一个屏幕,登录是基于互联网和webdomain,意味着登录时它向具有php文件的在线服务器发送请求,返回true或者假,然后移动到下一个屏幕。我想使用ProcessDialog,除非它从服务器获得true或false,如果它变为false,则轮应该停止处理,它应该显示无效用户名或密码的消息,如果它变为true,则在获得true后它应该结束进程对话框并移动到下一个屏幕,现在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 个答案:

答案 0 :(得分:1)

// 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();
        }

    }