【问题标题】:android: showing a progress dialogandroid:显示进度对话框
【发布时间】:2010-06-10 18:36:49
【问题描述】:

我在 stackoverflow 上查看了 Android API 和其他帖子,但无法弄清楚这一点。

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

ProgressDialog pd = ProgressDialog.show(this,"","Loading. Please wait...",true);

//download file

pd.cancel();

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

我能做什么?

【问题讨论】:

  • 下载代码是否运行到单独的线程中?
  • 不,它与活动在同一线程上运行。

标签: android dialog progressdialog


【解决方案1】:

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

看看this article如何使用它

【讨论】:

  • 我实际上开了一个会议,我们讨论了线程,我想通了。我还必须把它放到一个单独的活动中,这样我的应用程序就不会在下载活动完成之前尝试加载文件。感谢您的帮助!你的轮子转动了。
【解决方案2】:

我有一个有点类似的场景,更多的是在为游戏的某个阶段设置东西时关卡加载暂停。我启动对话框,在传递上下文的线程中开始级别加载,并在线程结束时调用它:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多