【发布时间】:2016-02-01 22:01:30
【问题描述】:
我正在开发一个程序,该程序会在用户电话中搜索某个日期,这大约需要 2-3 秒。当它在计算时,我想显示一个加载屏幕,这样用户就知道确实发生了一些事情。但是,当我尝试在计算之前显示加载屏幕时,屏幕上没有显示任何内容。
这就是我所拥有的:
ProgressDialog loading= new ProgressDialog(this);
loading.setTitle("Loading");
loading.setMessage("Please wait...");
loading.show();
//search stuff
loading.dismiss();
除此之外,我还尝试将 ProgressDialog 放入如下线程中,
new Thread(new Runnable(){
public void run(){
ProgressDialog loading= new ProgressDialog(this);//error here for "this"
loading.setTitle("Loading");
loading.setMessage("Please wait...");
loading.show();
}
});
//search stuff
但由于“this”关键字而失败,我相信是因为它指的是 Activity 而不是常规类,但我可能是错的......
如何让 ProgressDialog 正确显示?
【问题讨论】:
-
您为什么要创建一个新线程来实际显示加载栏,而不是创建一个新线程来执行您所说的繁重处理......并使用 UI 线程(您当前的线程)来显示进度条等...
-
如果您在不同的线程中进行搜索,那么在该线程本身的最后调用
loading.dismiss()。
标签: android multithreading progressdialog android-progressbar