Mars老师Android视频第一季18集文件下载不成功的解决
来源:互联网 发布:淘宝抠图多少钱 编辑:程序博客网 时间:2024/05/18 02:00
找bug之旅:
前几日看了Mars老师的Android视频第一季的第18集,文件下载,并实现了download的代码,开始自己写了的怎么也调不通,Tomcat的本地服务搭建也没有问题,网页都能访问得到,就是不下载,总是出异常,干脆下载了视频附带的代码,放到本地还是不行,后来放了几天,想到难道是?
因为有个印象,UI线程里不能下载文件,视频是很早的Android2.2版本,我用的是4.4的模拟器,可能升级了对这个要求高了?然后我就在原来的代码中新开的线程,就是点击下载按钮会新建一个Thread去下载LRC和MP3。这下可以下载了。太高兴了!
还有一个自己的问题,就是修改了原来代码中的创建文件部分,判断了一下返回值,但是由于粗心,一开始总是发现能成功创建文件,sd卡上有,但是大小是0,就是MP3
没下载成功,后来发现是自己多加的判断有问题。一开始的代码里写的是if(res),写反了,所以没写进去,修改后如下
public File createFile(String fileName) throws IOException{File file = new File(SDPATH + fileName);boolean res = file.createNewFile();if(!res){System.out.println("crearte failure! file aleady exists!");file = null;}System.out.println(res);return file;}这个file.createNewFile函数的返回值的解释如下:
也就是已经被成功创建就返回true,如果该文件已经存在就返回false。我一开始给弄反了,只看了前半句,以为文件已存在返回ture呢,太大意了,都不符合逻辑的返回值也不好好确认。
要完成本地服务器文件的简单搭建。
下面的代码是我对文件DownLoadActivity.java的修改,其余的两个文件HttpDownloader.java和FileUtils.java使用原来的代码就可以,按上图配置好本地的Tomcat就可以成功下载了!
package com.example.download;import com.example.utils.HttpDownloader;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;// 下载操作不能相爱主线程中作,否则会抛出异常,不能正常执行public class DownLoadActivity extends Activity {private Button txtBtn;private Button fileBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtBtn = (Button)findViewById(R.id.txtBtn); txtBtn.setOnClickListener(new txtButtonListener()); fileBtn = (Button)findViewById(R.id.fileBtn); fileBtn.setOnClickListener(new fileButtonListener()); } class txtButtonListener implements OnClickListener{@Overridepublic void onClick(View v) {//HttpDownloader httpDownloader = new HttpDownloader();//String urlStr = "http://192.168.1.105:8080/voa1500/01.LRC";////String urlStr = "http://www.marschen.com/data1.html";//String lrc = httpDownloader.download(urlStr);//System.out.println(lrc);Thread wt = new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubHttpDownloader httpDownloader = new HttpDownloader();String urlStr = "http://192.168.1.105:8080/voa1500/01.LRC";//String urlStr = "http://www.marschen.com/data1.html";String lrc = httpDownloader.download(urlStr);System.out.println(lrc);}});// TODO Auto-generated method stubwt.start();} } class fileButtonListener implements OnClickListener{@Overridepublic void onClick(View v) {//HttpDownloader httpDownloader = new HttpDownloader();//String urlStr = "http://192.168.1.105:8080/voa1500/01.mp3";//String path = "voa/";//String fileName = "01.mp3";//int res = httpDownloader.downFile(urlStr, path, fileName);//System.out.println("res is " + res);// TODO Auto-generated method stubnew Thread(){public void run(){HttpDownloader httpDownloader = new HttpDownloader();String urlStr = "http://192.168.1.105:8080/voa1500/01.mp3";String path = "voa/";String fileName = "01.mp3";int res = httpDownloader.downFile(urlStr, path, fileName);System.out.println("res is " + res);}}.start();} }}
下载成功,终于跟课上讲的一致了!!可以继续学习了
0 0
- Mars老师Android视频第一季18集文件下载不成功的解决
- mars老师[Android开发视频教学].01_18 文件下载 源码
- mars老师[Android开发视频教学].01_18 文件下载 源码
- Android开发视频教学_mars老师的视频(第一季)
- Android开发教学视频---mars老师讲解!
- mars老师《Android开发视频教程》_01_14 handler的使用(一)视频源码
- mars老师《Android开发视频教程》_01_15 handler的使用(二)视频源码
- mars老师推荐的学习android路线
- mars老师推荐的学习android路线
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线指导
- Mars老师的Android学习基本路线_Java
- 转:Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线
- Mars老师的Android学习基本路线指导
- 转:Mars老师的Android学习基本路线
- Android SDK Manager 和 ADT 更新
- Unity3D学习之第二次课(碰撞体、树的制作等等...)
- 用VBS判断无BOM头的文件是否UTF-8编码
- Android自定义View以及layout属性全攻略
- java获取当月的工作日
- Mars老师Android视频第一季18集文件下载不成功的解决
- C语言编程笔记-03
- .Net学习资料
- 《Programming Hive》读书笔记(二)Hive基础知识
- java获取当前系统前一天,当天,后天日期
- DNS扫盲系列之一:有关公网DNS
- vsftpd在ubuntu server 12.04 下的设置。
- JavaWeb——Day18_2
- [字典树] HDU 1075 - What Are You Talking About