大佬教程收集整理的这篇文章主要介绍了Android AsyncTask onPostExecute方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
onPostExecute方法未执行.我哪里弄错了? (仿真器和设备上的结果相同)
我也不确定是否应该对这些方法使用覆盖表示法
这是目前的粗略解决方案.它每次都有效,但不是正确而不是好的.
我在做什么:
*我使用tabgroupactivity启动子活动
*然后我导航到子活动中的另一个活动,因此它是父项的当前子项
*有一个webview,我在其中显示有关一条评论的信息……无论如何
* webView显示的内容中有一个链接
*当我点击它时,我开始下载PDF文件.
下载文件时:
while ((current = bis.read()) != -1) { read = read + current; baf.append((bytE) current); Dialog.setProgress(read); if(Dialog.isShowing() && read+2*current>file_sizE){ Dialog.dismiss(); Dialog.cancel(); } }
我的Dialog对象消失了,所以如果我尝试在While循环后调用Dialog,我就是不明白.所以我做的是每次我从网站获得新的缓冲区时,我检查对话框是否仍然可见,如果当前字节连同当前读取的字节数大于文件的完整大小,那么我关闭while循环中的对话框.
我尝试使用fileSize == read(字节数),但它不起作用,也许它们在下载文件时并不是彼此精确匹配的
private class DownloadPDFFile extends AsyncTask<String,Integer,Void> { private ProgressDialog Dialog = new ProgressDialog(getParent()); protected void onPreExecute() { Dialog.setmessage("Downloading PDF file.."); Dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); Dialog.setCancelable(false); // Dialog.setMax(1000); Dialog.setProgress(0); Dialog.show(); } protected Void doInBACkground(String... urls) { File file=null; int file_size = 0; try { URL url = new URL(urls[0]); URLConnection urlConnection = url.openConnection(); urlConnection.connect(); file_size = urlConnection.getContentLength(); Dialog.setMax(file_sizE); } catch (IOException E) { } try { URL url1 = new URL(urls[0]); // you can // link file = new File("skm_intern_pdf.pdf"); URLConnection ucon = url1.openConnection(); InputStream is = ucon.geTinputStream(); BufferedInputStream bis = new BufferedInputStream(is); ByteArrayBuffer baf = new ByteArrayBuffer(5000); int read = 0; int current = 0; while ((current = bis.read()) != -1) { read = read + current; baf.append((bytE) current); Dialog.setProgress(read); if(Dialog.isShowing() && read+2*current>file_sizE){ Dialog.dismiss(); Dialog.cancel(); } } FiLeoutputStream fos = openFiLeoutput("skm_pdf.pdf",Context.MODE_WORLD_WRITEABLE); fos.write(baf.toByteArray()); fos.flush(); fos.close(); } catch (IOException E) { } return null; }
以上是大佬教程为你收集整理的Android AsyncTask onPostExecute方法全部内容,希望文章能够帮你解决Android AsyncTask onPostExecute方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。