我已经在stackoverflow上查看了Android API和其他帖子,但一直无法解决这个问题。
我的应用程序将文件下载到SD卡。我想在文件下载时弹出“加载...”对话框,然后在下载完成后消失。这就是我使用android API提出的:
ProgressDialog pd = ProgressDialog.show(this,"","Loading. Please wait...",true);
//download file
pd.cancel();
然而对话框实际上并未显示。当我调试它时,它声称它正在显示,但它显然不在屏幕上。
我能做什么?
答案 0 :(得分:3)
您必须将下载代码运行到单独的线程中。简单的方法是使用AsyncTask
另请参阅this article如何使用它
答案 1 :(得分:2)
我有一个类似的场景,更多的是一个级别加载暂停,同时正在为游戏阶段设置内容。我启动对话框,在一个传递上下文的线程中启动级别加载,并在线程的末尾调用它:
mContext.runOnUiThread(new Runnable(){
public void run() {
mContext.mProgressDialog.dismiss();
}
});
我发现runOnUiThread()方法非常有用。