Mars老师Android视频第一季18集文件下载不成功的解决
2014-11-15 23:07
387 查看
找bug之旅:
前几日看了Mars老师的Android视频第一季的第18集,文件下载,并实现了download的代码,开始自己写了的怎么也调不通,Tomcat的本地服务搭建也没有问题,网页都能访问得到,就是不下载,总是出异常,干脆下载了视频附带的代码,放到本地还是不行,后来放了几天,想到难道是?
因为有个印象,UI线程里不能下载文件,视频是很早的Android2.2版本,我用的是4.4的模拟器,可能升级了对这个要求高了?然后我就在原来的代码中新开的线程,就是点击下载按钮会新建一个Thread去下载LRC和MP3。这下可以下载了。太高兴了!
还有一个自己的问题,就是修改了原来代码中的创建文件部分,判断了一下返回值,但是由于粗心,一开始总是发现能成功创建文件,sd卡上有,但是大小是0,就是MP3
没下载成功,后来发现是自己多加的判断有问题。一开始的代码里写的是if(res),写反了,所以没写进去,修改后如下
Returns:true if the file has been created, false if it already exists
也就是已经被成功创建就返回true,如果该文件已经存在就返回false。我一开始给弄反了,只看了前半句,以为文件已存在返回ture呢,太大意了,都不符合逻辑的返回值也不好好确认。
要完成本地服务器文件的简单搭建。
下面的代码是我对文件DownLoadActivity.java的修改,其余的两个文件HttpDownloader.java和FileUtils.java使用原来的代码就可以,按上图配置好本地的Tomcat就可以成功下载了!
下载成功,终于跟课上讲的一致了!!可以继续学习了
前几日看了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函数的返回值的解释如下:
Returns:true if the file has been created, false if it already exists
也就是已经被成功创建就返回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{ @Override public 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(){ @Override public void run() { // TODO Auto-generated method stub 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); } }); // TODO Auto-generated method stub wt.start(); } } class fileButtonListener implements OnClickListener{ @Override public 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 stub new 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(); } } }
下载成功,终于跟课上讲的一致了!!可以继续学习了
相关文章推荐
- mars老师[Android开发视频教学].01_18 文件下载 源码
- mars老师[Android开发视频教学].01_18 文件下载 源码
- mars老师[Android开发视频教学].01_18 文件下载 源码
- Mars Android视频学习笔记——01_18_文件下载
- 成功解决android 网络视频边下载变播放。
- 成功解决android 网络视频边下载变播放-附上大佬连接
- Mars Android视频学习笔记——01_18_文件下载
- 成功解决 Android 下载中文文件名
- mars老师 [Android视频教学]01_20 XML解析
- mars老师[Android开发视频教学]01_24 Socket编程
- mars老师[Android开发视频教学]01_23 WIFI网络操作
- mars老师[Android开发视频教学] 01_21 广播机制(1)
- Android开发视频教学_mars老师的视频(第二季)
- Android开发视频教学_mars老师的视频(第三季)
- mars老师[Android开发视频教学] 01_22 广播机制(2)
- (转自Mars) Android - 文件下载类 HttpDownloader,内存卡操作类 FileUtils
- mars老师[Android开发视频教学].01_16_SQLite使用方法 视频源码
- 成功解决 Android 下载中文文件名(转)
- mars老师[Android开发视频教学]01_23 WIFI网络操作
- 成功解决 Android 下载中文文件名(转)