如何解决进度对话框导致应用程序不响应错误?
| 我正在使用ѭ1中的ѭ0来显示我的上传进度,但是如果上传速度较慢并且条形移动需要一些时间,并且我的应用程序显示应用程序没有响应错误,即等待或强制关闭..bt,实际上我的工作正在进行,如果我选择等待应用程序运行文件。我该怎么做才能删除该应用程序未响应的错误,或者我可以增加直到显示它的时间如此之快的时间? 在doInBackground
方法中
.
.
.
.
.
.
int i;
byte[] buf = new byte[512];
while ((i = in.read(buf)) != -1) {
out.write(buf,i);
publishProgress(in.available());
System.out.println(i);
}
并更新进度升级方法
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);
}
解决方法
我认为获得ANR的原因是您正在UI线程上执行长时间运行的任务。如果将阻塞的内容移到另一个线程上并通知UI线程进度更新,则可能会发现ANR消失了。抱歉,如果您长期运行的任务已经在后台(无法从您的代码中分辨出来)
您可以尝试使用AsyncTask。它具有内置的通知机制并为您管理线程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。