@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if(intent!=null){
String type=intent.getExtras().getString("type");
String downloadPath=intent.getExtras().getString("downloadPath");
String savePath=intent.getExtras().getString("savePath");
if(type.equals("audio")){
}else if(type.equals("video")){
new MyThread(downloadPath, savePath).start();
}
}
return super.onStartCommand(intent, flags, startId);
}
class MyThread extends Thread{
HttpResponse httpResponse=null;
InputStream is=null;
FileOutputStream fos=null;
long httpEntityLength=-1;
RandomAccessFile raf=null;
String downloadPath=null;
String savePath=null;
public MyThread(String downloadPath,String savePath) {
this.downloadPath=downloadPath;
this.savePath=savePath;
}
public void run(){
try {
HttpClient httpClient=new DefaultHttpClient();
HttpPost httpPost=new HttpPost(HttpUrlUtil.WEBSERVER_PATH+downloadPath);
httpResponse=httpClient.execute(httpPost);
HttpEntity httpEntity=httpResponse.getEntity();
BufferedHttpEntity bufferedHttpEntity = new BufferedHttpEntity(httpEntity);
System.out.println(HttpUrlUtil.WEBSERVER_PATH+downloadPath);
System.out.println("bufferedHttpEntity"+bufferedHttpEntity.getContentLength());
is=bufferedHttpEntity.getContent();
File file=new File(savePath);
raf=new RandomAccessFile(file, "rwd");
fos=new FileOutputStream(file);
if(file.exists()){
//handle发送此文件已经存在的消息
if(raf.length()==httpEntityLength){
System.out.println("长度相同");
}else{
System.out.println("长度不相同");
}
}
byte buffer[] = new byte[1024];
int i = 0;
while ((i=is.read(buffer))!=-1) {
fos.write(buffer, 0, i);
}
if(raf.length()==httpEntityLength){
System.out.println("长度相同");
}else{
System.out.println("长度不相同");
}
} catch (Exception e) {
// TODO: handle exception
}finally{
try {
is.close();
raf.close();
fos.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
}
}
下载地址是对的,但是得到的长度一直都是6277