如何在进行后台操作时显示进度对话框?

时间:2011-04-21 07:00:52

标签: android

我开发了一个包含3个屏幕的应用程序

其中一个是LoginScreen活动,点击登录按钮它应该调用一个Web服务

&安培;从Web服务返回时,它应显示ProgressBar。

任何人都可以帮忙吗?

最诚挚的问候, 阿米特

3 个答案:

答案 0 :(得分:1)

使用android.os.AsyncTask可以轻松完成此操作。它提供了一种方便的方式来进行进度对话,当长时间运行的Web服务调用阻止UI线程时,它还有助于防止应用程序无响应错误。

在Android文档中有很好的文档,网上有很多例子。

答案 1 :(得分:1)

我认为没有必要使用AsyncTask,有更简单的方法来实现这个

final ProgressDialog dialog = ProgressDialog.show                   (this,getResources().getText(R.string.progressbartitle),              getResources().getText(R.string.progressbartext),true,false);

new Thread()
{
    public void run()
    {
         //do you web server call
    }
}.start();
这就是全部 最好的祝福 阿努普

答案 2 :(得分:1)

看看这个:

public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        ProgressDialog  dialog = ProgressDialog.show(FirstScreen.this, "",
                    "Please wait for few seconds...", true);

        // final TextView tv = (TextView)findViewById(R.id.TextView01);           
         final Thread t = new Thread(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                parseData();
            }
        });
          t.start();
         Thread t1 = new Thread(new Runnable() {
            public void run() {

             try {
                t.join();
             } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }  
             mHandler.post(new Runnable() {

                @Override
                public void run() {
            // TODO Auto-generated method stub
                dialog.cancel();
                        //Perform your action after showing dailog here(like showing list) 

                }
            });

            }
        });
        t1.start();        
    }

希望这会对你有所帮助。