您好我在ProgressDialog
中使用AsycTask
显示我的上传进度但是如果上传速度较慢且条形移动需要一些时间而我的应用程序显示应用程序没有响应错误即等待或强制关闭..bt实际上我的工作正在进行,如果我选择等待应用程序运行文件..我应该怎么做才能删除此应用程序没有响应错误,或者我可以增加时间直到这样它的显示如此之快? / p>
doInBackground
方法
.
.
.
.
.
.
int i;
byte[] buf = new byte[512];
while ((i = in.read(buf)) != -1) {
out.write(buf,0,i);
publishProgress(in.available());
System.out.println(i);
}
和int进度升级方法
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
if(a==0){
progressDialog.show();
}
a++;
int b=(int) (fil.length()-values[0]);
progressDialog.setProgress(b);
}
答案 0 :(得分:0)
我认为你获得ANR的原因是你在UI线程上执行长时间运行的任务。如果将阻塞内容移动到另一个线程并通知UI线程进度更新,您可能会发现ANR消失。如果你的长期任务已经在后台(从你的代码中无法判断),那就道歉了。
您可以尝试使用AsyncTask。它具有内置的通知机制并为您管理线程。