8

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

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

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

//download file

pd.cancel();

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

我能做些什么?

4

2 回答 2

3

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

另请参阅这篇文章以了解如何使用它

于 2010-06-10T20:12:26.693 回答
2

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

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

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

于 2010-06-10T21:20:16.297 回答