[英]How to show the SecondaryProgress in a Android 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.