Java Android中的ProgressDialog-指示器显示满,即使是30%
我正在尝试创建一个进度对话框,如下代码所示。 但问题是,当我点击cancel并再次点击进度条(编辑:显示进度条按钮)时,它并没有按预期工作。指示器移动得更快,有时甚至没有完成就退出了 这是我在屏幕截图上单击“单击以显示…”按钮时调用onClick3的代码Java Android中的ProgressDialog-指示器显示满,即使是30%,java,android,multithreading,Java,Android,Multithreading,我正在尝试创建一个进度对话框,如下代码所示。 但问题是,当我点击cancel并再次点击进度条(编辑:显示进度条按钮)时,它并没有按预期工作。指示器移动得更快,有时甚至没有完成就退出了 这是我在屏幕截图上单击“单击以显示…”按钮时调用onClick3的代码 ProgressDialog progressDialogAdvanced; public void onClick3(View v ){ showDialog(1); progressDialogAdvanced.setPr
ProgressDialog progressDialogAdvanced;
public void onClick3(View v ){
showDialog(1);
progressDialogAdvanced.setProgress(0);
t = new Thread(new Runnable() {
@Override
public void run() {
for(int i = 1; i <=10; i++){
try{
Thread.sleep(500);
progressDialogAdvanced.incrementProgressBy((int)10);
}catch(InterruptedException e ){
e.printStackTrace();
}
}
progressDialogAdvanced.dismiss();
}
});
t.start();
}
编辑:
使用了cancel()而不是Disclose()。使用的处理程序如下所示
还是不能解决任何问题。我必须等到线程被破坏
for(int i = 1; i <=10; i++){
try{
Thread.sleep(500);
}catch(InterruptedException e ){
e.printStackTrace();
}
progressBarHandler.post(new Runnable() {
public void run() {
progressDialogAdvanced.incrementProgressBy(10);
}
});
}
progressDialogAdvanced.cancel();
对于(int i=1;i您需要添加进度的最大大小,如:
progressBar.setMax(100);
请参阅此示例:这没有任何区别。在我单击“取消”并再次启动对话框后,它有时甚至在20%之前退出……或者移动得太快。是否显示对话框(1)
从类ProgressDialog
调用静态方法show
?哇,这段代码真的有效并且没有引发异常吗?使用处理程序
可能吗?@SherifelKhatib它有效。我也使用了处理程序,但即使这样也没有任何区别。在onClick u中的主线程上创建处理程序唱final Handler mHandler=new Handler();
然后在for循环中替换progressDialogAdvanced.incrementProgressBy((int)10);
bymHandler.post(new Runnable(){public void run(){progressDialogAdvanced.incrementProgressBy((int)10);});
progressBar.setMax(100);