环境搭建:

本地服务器(下载wamp【Windows, Apache, MySQL, PHP 】,安装即可,然后将网页或文件放进 www directory)

虚拟机(访问本地服务器的ip:10.0.2.2)

注意事项:

权限相关

网络访问 存储卡访问

文件权限 如:chmod  777 /data

源代码:

package com.example.net_ex04;

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import org.apache.http.HttpEntity;

import org.apache.http.HttpResponse;

import org.apache.http.client.ClientProtocolException;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpGet;

import org.apache.http.impl.client.DefaultHttpClient;

import android.os.AsyncTask;

import android.os.Bundle;

import android.os.Environment;

import android.app.Activity;

import android.view.Menu;

import android.view.View;

import android.widget.Button;

import android.widget.ProgressBar;

public class MainActivity extends Activity {

ProgressBar progressBar;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

progressBar = (ProgressBar)this.findViewById(R.id.progressBar1);

Button button = (Button)this.findViewById(R.id.button1);

button.setOnClickListener(new View.OnClickListener() {

String url = "http://10.0.2.2/Music.flv";

@Override

public void onClick(View v) {

// TODO Auto-generated method stub

progressBar.setVisibility(View.VISIBLE);

progressBar.setProgress(0);

new DownloadTask().execute(url);

}

});

}

@Override

public boolean onCreateOptionsMenu(Menu menu) {

getMenuInflater().inflate(R.menu.activity_main, menu);

return true;

}

class DownloadTask extends AsyncTask{

public DownloadTask() {

// TODO Auto-generated constructor stub

}

@Override

protected String doInBackground(String... params) {

// TODO Auto-generated method stub

HttpGet httpRequest = new HttpGet(params[0]);

HttpClient httpClient = new DefaultHttpClient();

try{

HttpResponse httpResponse = httpClient.execute(httpRequest);

HttpEntity entity = httpResponse.getEntity();

long length = entity.getContentLength();

progressBar.setMax((int)length);

InputStream inputStream = entity.getContent();

byte[] b = new byte[1024];

int readedLength = -1;

//File file = new File(Environment.getExternalStorageDirectory().getAbsoluteFile(), "Music.flv");

File file = new File("/data/Music.flv");

if(!file.exists())

{

file.createNewFile();

}

OutputStream outputStream = new FileOutputStream(file);

int count = 0;

while((readedLength = inputStream.read(b)) != -1){

outputStream.write(b, 0, readedLength);

count += readedLength;

publishProgress(count);

}

}catch(ClientProtocolException e){

e.printStackTrace();

}catch(IOException e){

e.printStackTrace();

}

return null;

}

protected void onProgressUpdate(Integer... values){

progressBar.setProgress(values[0]);

super.onProgressUpdate(values);

}

}

}

android 网络程序下载,Android之网络文件下载相关推荐

  1. PhoneGap对比html5写android应用程序【android进化三十八】

    什么是PhoneGap,其实就是在手机中可以写html代码的插件,下面一段话来源网摘"PhoneGap是一个开放源代码的,跨平台的构建移动应用程序的框架.在PhoneGap中,完全通过HTM ...

  2. android 自定义模板下载,android studio 自定义模板

    由于项目用上了 mvp 架构,基本上一个页面就至少需要新创建6个类,分别是 model view presenter 的接口以及其对应的实现类,再加上使用 dagger 的话就要更多了,所以这时候 a ...

  3. android获取程序名称,Android获取应用程序名称(ApplicationName)示例

    MainActivity如下: 代码如下: package cn.testapplicationname; import android.os.Bundle; import android.widge ...

  4. Android应用程序文件结构,Android项目文件及应用程序—目录结构详解

    1. src目录:是源代码目录,所有允许用户修改的java文件和用户自己添加的java文件都保存在这个目录中.如建立EditView工程,ADT根据用户在工程向导中的"Create Acti ...

  5. android版本11下载,android 11正式版下载-android 11正式版系统下载-pk38游戏网

    android 11正式版系统是一款非常强大安卓手机原生系统,于近日发布正式版本,android 11正式版对大部分机型都进行优化,强大的控制功能以及非常简单的操作方式带给玩家最快捷的便利. andr ...

  6. android 镂空字体下载,Android开发TextvView实现镂空字体效果

    记录一下... 自定义TextView public class HollowTextView extends AppCompatTextView { private Paint mTextPaint ...

  7. android 镂空字体下载,Android——自定义镂空掩饰控件

    刚学完ViewDragHelper和PorterDuffXferMode的我,突然想做一个这样效果的自定义控件:点击ListView的列表项,通过ViewDragHelper用动画方式上下各弹出一个控 ...

  8. android 最新 support,android support v7 下载-android support.v7包 官方最新版 - 河东下载站...

    android support v7是一款功能非常实用的android在进行开发的过程中,必须要进行使用的一个包:这款软件作为一个功能非常全面的功能包,也是目前为止最新的功能包,是您这使用Androi ...

  9. android 性能测试工具下载,Android性能测试 一些适用于Android Studio的代码审查和性能测试工具...

    导言: Android应用在CPU占用,内存消耗方面的性能指标是影响产品质量的重要因素,由于QQ管家,360手机助手等应用都提供直观的内存消耗,流量监控功能,致使用户比以往更加关注软件的性能,并以此进 ...

最新文章

  1. 'utf-8' codec can't decode byte 0xff in position 0
  2. LinQ中Skip()方法和Take()方法的使用
  3. stdafx.h的作用以及原理
  4. Python入门100题 | 第060题
  5. iptables的增删改查
  6. 【IBatis.Net】 各种配置说明
  7. CodeForces - 1368E Ski Accidents(拓扑排序)
  8. 第一章:Java语言概述
  9. js获取DIV的位置坐标的三种方法!
  10. 计算机选择题在线,计算机基础知识选择题题库全集.doc
  11. eclipse使用jsp
  12. 地址总线、数据总线、控制总线
  13. qiankun加载react子应用报错[import-html-entry]: error occurs while executing normal script
  14. k8s 部署 xxl-job-admin:2.3.0
  15. 【DDRNet】DDRNet项目使用单GPU、自己的数据集训练、得到测试图像
  16. 【vscode】vscode常用插件介绍
  17. RealSense D435深度相机开发(一)---- 基础介绍
  18. [css] 积累(old)
  19. 项目风险的主要来源有哪些?应如何防范
  20. 戴尔霄龙服务器销售商,搭载AMD EPYC“霄龙”处理器:DELL 戴尔 发布 EMC PowerEdge R7415 、R7425 和 R6415 服务器...

热门文章

  1. python split函数 空格_python上手--10行代码读懂红楼梦
  2. python收集数据程序_基于Python语言的互联网数据收集软件的设计
  3. 山海伏妖录java_山海伏妖录攻略大全 剧情结局加点妖兽大全
  4. Java集合:什么是Java集合?
  5. 向MIP开源项目提交Issues
  6. Sublime Text 3 无法输入中文解决方案
  7. Problem B: 求各位数字之和
  8. CSS属性(display)
  9. 在eclipse中启动Tomcat访问localhost:8080失败项目添加进Tomcat在webapp中找不到
  10. linux用户及权限详解(20170425)