进度对话框导致应用程序没有响应错

时间:2011-05-30 10:28:45

标签: android

您好我在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);

        }

1 个答案:

答案 0 :(得分:0)

我认为你获得ANR的原因是你在UI线程上执行长时间运行的任务。如果将阻塞内容移动到另一个线程并通知UI线程进度更新,您可能会发现ANR消失。如果你的长期任务已经在后台(从你的代码中无法判断),那就道歉了。

您可以尝试使用AsyncTask。它具有内置的通知机制并为您管理线程。