Android ProgressDialog与Soap方法

Android ProgressDialog与Soap方法,android,Android,在这里,我试图在调用Soap服务时显示progressbar,并在来自服务的响应时关闭progressbar,但progressbar不显示。它直接提交数据,当我尝试强制应用时,它崩溃了 我想在soap方法启动后立即显示进度条,并在结束后关闭 请告诉我该怎么办 protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedIns

在这里,我试图在调用Soap服务时
显示progressbar,并在来自服务的响应时关闭progressbar,但progressbar不显示
。它直接提交数据,当我尝试强制应用时,它崩溃了

我想在soap方法启动后立即显示进度条,并在结束后关闭

请告诉我该怎么办

protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.register);

    Button btnEnter = (Button) findViewById(R.id.btRegister);
    btnEnter.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View arg0) {

            if (Name.equals("")) {
                textValidation.setText("Please Enter Your Name.");
            } else if (Number.equals("")) {
                textValidation.setText("Please Enter Your Contact Number.");
            } else {
                textValidation.setText("");

                ProgressDialog dialog = ProgressDialog.show(Register.this,
                        "", "Loading. Please wait...", true);

                request = new SoapObject(NAMESPACE, METHOD_NAME);

                name = new PropertyInfo();
                name.setName("Name");
                name.setValue(Name);
                name.setType(String.class);
                request.addProperty(name);

                number = new PropertyInfo();
                number.setName("Number");
                number.setValue(Number);
                number.setType(String.class);
                request.addProperty(number);

                SoapSerializationEnvelope envp = new SoapSerializationEnvelope(
                        SoapEnvelope.VER11);
                envp.dotNet = true;
                envp.setOutputSoapObject(request);
                HttpTransportSE androidHttpTransport = new HttpTransportSE(
                        URL);
                try {
                    androidHttpTransport.call(SOAP_ACTION, envp);
                    SoapPrimitive response = (SoapPrimitive) envp
                            .getResponse();
                    Response = response.toString();

                    if (Response.equals("Success")) {
                        etName.setText("");
                        etEmail.setText("");
                        etNumber.setText("");
                        imageView.setTag("");

                        CookieManager cm = CookieManager.getInstance();
                        cm.setAcceptCookie(true);
                        cm.setCookie("http://192.168.2.9",
                                "MytestbuddyApp=" + Course);
                        CookieSyncManager.getInstance().sync();

                        Intent openStartingPoint = new Intent(
                                "com.MobileWeb.mytestbuddy.Main");
                        startActivity(openStartingPoint);
                    } else {
                        textValidation.setText("Something is Wrong.");
                    }

                } catch (Exception e) {
                    textValidation.setText(e.toString());
                }
                dialog.dismiss();
            }
        }

    });

使用AsyncTask使其工作

public class CallWebServiceAsyncTask extends AsyncTask<Void, Void, Void> {

        @Override
        protected void onPreExecute() {
            //here show your progressdialog
               ProgressDialog dialog = ProgressDialog.show(Register.this,
                    "", "Loading. Please wait...", true);
        }

        @Override
        protected void onPostExecute(Void result1) {
            //here dismiss the progressdialog
                     dialog.dismiss();
}
        @Override
        protected Void doInBackground(Void... arg0) {
            //make your servcie request here
        }
}
公共类CallWebServiceAsyncTask扩展异步任务{
@凌驾
受保护的void onPreExecute(){
//这里显示您的进度对话框
ProgressDialog=ProgressDialog.show(Register.this,
“”和“正在加载。请稍候…”,为true);
}
@凌驾
受保护的void onPostExecute(void result1){
//这里关闭progressdialog
dialog.dismise();
}
@凌驾
受保护的Void doInBackground(Void…arg0){
//在这里提出您的服务请求
}
}

在onPreExecute()中为soap请求显示进度对话框使用asynctask在doInBackground()中生成soap请求在onPostExecute()中取消对话框并在响应时更新UI,应用程序崩溃。。。该怎么办?嘿,我已经把cookiemanager部件和新的活动代码放在onPostExecute中,并解决了它…:)