代码之家  ›  专栏  ›  技术社区  ›  mtmurdock

Android:显示进度对话框

  •  8
  • mtmurdock  · 技术社区  · 14 年前

    我已经看过AndroidAPI和StackOverflow上的其他帖子,但还没有弄清楚。

    我的应用程序将文件下载到SD卡。我想在下载文件时弹出一个“正在加载…”对话框,然后在下载完成后让它消失。这就是我使用Android API的想法:

    ProgressDialog pd = ProgressDialog.show(this,"","Loading. Please wait...",true);
    
    //download file
    
    pd.cancel();
    

    但是对话框实际上没有显示。当我调试它时,它声称它正在显示,但它显然不在屏幕上。

    我能做什么?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Sean O'Toole Ak47    12 年前

    您必须将下载代码运行到一个单独的线程中。简单的方法是使用 AsyncTask

    也看 this article 关于如何使用它

        2
  •  2
  •   Maximus    14 年前

    我有一个类似的场景,更多的是一个关卡加载暂停,而东西正在为游戏的一个阶段设置。我启动对话框,在传递上下文的线程中启动级别加载,并在线程末尾调用此命令:

    mContext.runOnUiThread(new Runnable(){
        public void run() {
            mContext.mProgressDialog.dismiss();
        }
    });
    

    我发现runOnIthread()方法非常有用。