IntentSerive下载文件(2)

  • service下载文件,加入标签:

<service android:name=".MyService"></service>

添加相关权限:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

  • 相关代码:

public class MainActivity extends Activity {
    private Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.mainactivity);
        button = (Button)findViewById(R.id.button1);
        button.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                // TODO Auto-generated method stub
                Intent intent = new Intent(MainActivity.this,MyIntentSerive.class);
                startService(intent);
            }
        });
    }

/**
* 使用IntentSerive下载图片 1、不用使用多线程 2、自动停止service
*
* @author LEI
*
*/
public class MyIntentSerive extends IntentService {
    private final String DOWNPATH = "http://www.baidu.com/img/bdlogo.png";

public MyIntentSerive() {
        super("MyIntentSerive");
    }

@Override
    public void onCreate() {

// TODO Auto-generated method stub
        super.onCreate();
    }

@Override
    protected void onHandleIntent(Intent itent) {
        // TODO Auto-generated method stub
        HttpClient httpClient = new DefaultHttpClient();
        HttpPost httpPost = new HttpPost(DOWNPATH);
        HttpResponse httpResponse = null;
        File file = Environment.getExternalStorageDirectory();
        FileOutputStream stream = null;
        try {
            httpResponse = httpClient.execute(httpPost);
            if (httpResponse.getStatusLine().getStatusCode() == 200) {
                byte[] result = EntityUtils.toByteArray(httpResponse
                        .getEntity());
                if (Environment.getExternalStorageState().equals(
                        Environment.MEDIA_MOUNTED)) {
                    File newFile = new File(file, "abc.png");
                    stream = new FileOutputStream(newFile);
                    stream.write(result, 0, result.length);
                    Toast.makeText(MyIntentSerive.this, "下载文件完毕",
                            Toast.LENGTH_LONG).show();
                }
            }
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } finally {
            if (stream != null)
                try {
                    stream.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            httpClient.getConnectionManager().shutdown();
        }
    }
}

}

时间: 2024-11-10 01:25:28

IntentSerive下载文件(2)的相关文章

wp8通过WebClient从服务器下载文件

通过WebClient从Web服务器下载文件,并保存到wp8手机应用程序的独立存储. 我们可以通过利用webClient_DownloadStringCompleted来获得下载完成所需要的时间,用Stopwatch得到下载的总时间. 通常我们都将上传.下载作为异步事件来处理,以便不阻止主线程. String url = "http://172.18.144.248:8080/upload/" + filename; WebClient client = new WebClient()

阿里云服务器(Windows)如何下载文件

背景:公司只有我一个技术,在我之前还有一个老技术,属于兼职状态,为了尽快熟悉公司网站及app项目情况,我联系了老技术,请他尽快将代码发给我,他说代码文件过大,问我能不能连上服务器下载.百度了很多,都不得要领,便有了这篇文的因由.当然,后来发现是自己百度的方向不对,这是后话暂且不提. 1.登录阿里云官网(https://www.aliyun.com/),[控制台]点进去 2.最左边列表点击[云服务器ECS] 3.[运行中]点进去 4.获取公网IP地址 5.[开始]菜单输入mstsc,打开本机的"远

TreadAPP-使用线程下载文件

package main; /** * Created by lxj-pc on 2017/6/27. */public class TreadApp {//volatile 线程间共享变量 private static volatile boolean isExit=false;//static成员不能访问非static成员 public static void main(String[] args) { //下载一个文件 启动线程 ,线程池使用, //启动线程 下载文件 1.线程自己实现方法

ajax请求不能下载文件(转载)

最近在做文件下载,后台写了个控制层,直接走进去应该就可以下载文件,各种文件图片,excel等 但是起初老是下载失败,并且弹出下面的乱码: 前台请求代码: [html] view plain copy $('#fileexcel').unbind('click').bind('click',function(){ alert("我要下载了"); $.ajax({ type:'post', url:'media', data:null, async:true, success : func

Asp.net mvc 下载文件

前言 最近有需求需要下载文件,可能是image的图片,也可能是pdf报告,也可能是微软的word或者excel文件. 这里就整理了asp.net mvc 和asp.net webapi 下载的方法 ASP.NET MVC 下载 在mvc中,control的returnresult有FileResult,描述如下: System.Web.Mvc.FileResult System.Web.Mvc.FileContentResult System.Web.Mvc.FilePathResult Sys

利用wget下载文件,并保存到指定目录

利用WGET下载文件,并保存到指定目录 [email protected] ~/下载 $ wget -P /home/cbx/下载/PDF https://www.linuxmint.com/documentation/user-guide/Cinnamon/chinese_16.0.pdf https://www.linuxmint.com/documentation.php wget是Linux上一个非常不错的下载指令,而其指令的内容虽然说是非常简单,但内藏许多的参数,也算是Linux工作者

FTP下载文件工具类

FTP文件下载需要的jar包commons-net-2.0.jar有时还需要:jakarta-oro.jar 1 package com.wdxc.util; 2 3 import java.io.File; 4 import java.io.FileOutputStream; 5 import java.io.IOException; 6 import java.io.OutputStream; 7 import java.util.HashMap; 8 import java.util.Ma

jsp下载文件的实现方法及注意事项 (转)

jsp中实现文件下载,最简单的方式是在网页上做超级链接,如:<a href="music/abc.mp3">点击下载</a>. 但是,这样服务器上的目录资源会直接暴露给最终用户,会给网站带来一些不安全的因素. 因此,可以采用其它方式实现下载,常使用的有以下两种:       1.RequestDispatcher的方式进行:       2.采用文件流输出的方式下载(推荐). 1.采用RequestDispatcher的方式: 1 <% 2 respons

PHP下载文件

客户端从服务端下载文件的流程分析: 浏览器发送一个请求,请求访问服务器中的某个网页(如:down.php),该网页的代码如下.服务器接受到该请求以后,马上运行该down.php文件运行该文件的时候,必然要把将要被下载的文件读入内存当中(这里是圣诞狂欢.jpg这张图片),这里通过fopen()函数完成该动作注意:任何有关从服务器下载的文件操作,必然需要先在服务端将文件读入内存当中 现在文件已经在内存当中了,这是需要从内存当中读取文件,通过fread()函数完成该动作注意:  如果文件较大,文件应该