繁体   English   中英

在Android上执行HttpRequest时如何显示ProgressDialog?

[英]How do I show a ProgressDialog while an HttpRequest executes on Android?

我有以下代码,我通过查看Android开发人员文档中的示例获得了该代码。 但是,它实际上并不显示对话框。 如果我调用dismiss(),它会在调用doLogin()完成后显示对话框,然后永远不会消失。 我不需要它是花哨的,我只是想在请求执行时显示一些东西。

    ProgressDialog dialog = ProgressDialog.show(GameList.this, "", 
            "Connecting. Please wait...", true);

    int r = app.doLogin();

    dialog.dismiss();

doLogin()是一种对服务器发出HTTP请求的方法,它返回一个状态代码以指示请求是否成功。

在主线程上运行HTTP请求绝不是一个好主意。 旋转一个工作线程,使用Handler在UI线程中关闭对话框。 像这样的东西:

ProgressDialog dialog = ProgressDialog.show(GameList.this, "",              "Connecting. Please wait...", true); 

final Handler h = new Handler(); //will execute on the main thread

new Thread(new Runnable(){
public void run()
{
    app.doLogin();
    h.post(new Runnable()
    {
        public void run()
        {
              dialog.dismiss();
        }
    }
}
}).start();

当然,三级嵌套不是必需的。 试图在这里说明这种技术。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM