安卓:显示进度对话框

8

我查看了Android API和其他stackoverflow帖子,但是没有能够弄清楚这个问题。

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

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

//download file

pd.cancel();

然而,对话框实际上并没有显示出来。当我进行调试时,它声称正在显示,但显然没有出现在屏幕上。

我该怎么办?


下载代码是否在单独的线程中运行? - Francesco Laurita
它在与活动相同的线程上运行。 - mtmurdock
2个回答

3

你需要将下载代码运行在单独的线程中。简单的方法是使用AsyncTask

还可以查看这篇文章了解如何使用它。


我实际上参加了一个会议,我们讨论了线程,我弄明白了。我还不得不将它放入一个单独的活动中,这样我的应用程序在下载活动完成之前就不会尝试加载文件。感谢您的帮助!你启动了轮子。 - mtmurdock

2

我有一个类似的情况,更像是在游戏的某个阶段设置东西时出现的等待加载暂停。我启动对话框,在线程中开始级别加载,该线程传递上下文并在线程结束时调用此操作:

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接