gpt4 book ai didi

android - AsyncTask publishProgress 没有更新我的 ProgressDialog

转载 作者:行者123 更新时间:2023-11-29 00:41:34 26 4
gpt4 key购买 nike

我的实际任务正在完成,但是即使我调用进度对话框,我的进度条的进度状态也没有任何增加..?有人能告诉我哪里做错了吗?

class A extends AsyncTask<File[],Integer,Void>
{
private Context cnt;
int count=0;
@Override
protected void onPreExecute() {
pd = new ProgressDialog(cnt);
pd.setMessage("Matching progress");
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
pd.setMax(100);
pd.setCancelable(false);
pd.setProgress(0);
pd.show();
}
A(Context context)
{
cnt=context;
}

protected Void doInBackground(File[]... params) {
// TODO Auto-generated method stub
File[] newfiles=params[0];
File[] temp=null;
int progress=0;
int dircnt=0;
int numberofdir=newfiles.length;
for(File b:newfiles)
{


count=0;
dirname=b.getName();
if(b.isDirectory())
{

temp=b.listFiles();
}
for(File a:temp)
{
gest=dotask.batchprocess(a.getPath());
if(gest!=null)
System.out.println("success");
String name=dirname+"_"+count;
saveGesture(name, gest);
count++;

}
dircnt++;
progress=(int)((dircnt/numberofdir)*100);
publishProgress(progress);


}


return null;
}
@Override
protected void onProgressUpdate(Integer... values) {
// increment progress bar by progress value
pd.setProgress(values[0]);


}
protected void onPostExecute() {
pd.hide();
pd=null;
}
}

下面是我调用 AsyncClass 的方法。

 public void addgestures()
{
cView.postInvalidate();
dotask.setH(cView.getH());
dotask.setW(cView.getW());

count=0;
files=null;
/*if(dir.isDirectory())
{
files=dir.listFiles();
}*/
files=dir.listFiles();
for(int i=0;i<files.length;i++)
{
System.out.println(files[i].getPath());
}




A a=new A(this);
a.execute(files);



}

最佳答案

你的整数数学有问题。线路

progress=(int)((dircnt/numberofdir)*100);

将始终产生 0,因为整数除法会截断为整数部分。

要修复它,只需使用 float 代替。具体来说:

float dircnt=0;
float numberofdir=newfiles.length;

关于android - AsyncTask publishProgress 没有更新我的 ProgressDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9008467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com