Android ProgressDialog 不工作

发布于 2024-11-19 16:19:32 字数 659 浏览 2 评论 0原文

该代码不起作用。加载屏幕不显示,但是如果我取出 http.load() ,它就可以正常工作。

Context ctx = v.getContext();
dialog = ProgressDialog.show(ctx, "Login", "Logging in...");
http.load();

http 代码:

try
        {
            HttpClient hc = new DefaultHttpClient();
            HttpPost post = newHttpPost("http://www.example.com/");

            HttpResponse rp = hc.execute(post);

            if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
            {
                result = EntityUtils.toString(rp.getEntity());
            }
        }catch(IOException e){
            e.printStackTrace();
        }

}

This code isn't working. The loading screen doesn't show, however if I take out the http.load() it works fine.

Context ctx = v.getContext();
dialog = ProgressDialog.show(ctx, "Login", "Logging in...");
http.load();

http code:

try
        {
            HttpClient hc = new DefaultHttpClient();
            HttpPost post = newHttpPost("http://www.example.com/");

            HttpResponse rp = hc.execute(post);

            if(rp.getStatusLine().getStatusCode() == HttpStatus.SC_OK)
            {
                result = EntityUtils.toString(rp.getEntity());
            }
        }catch(IOException e){
            e.printStackTrace();
        }

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

分开我的手 2024-11-26 16:19:32

这是因为您从 UI 线程调用 http.load() 并且它会被阻塞,直到该调用完成。您应该使用 AsyncTask

That's because you're calling http.load() from UI thread and it gets blocked until this call completes. You should use AsyncTask for that.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文