东西拼凑,最终弄出来能够用的代码

[1].[代码] [Java]代码 跳至 [1]

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
publicclass

DownManagerTask {
   
   
privatestatic

final

String TAG =
"DownManagerTask";
   
   
privatestatic

DownManagerTask DOWN_TASK =
newDownManagerTask();
   
   
privateContext
context;
   
privateDownloadManager
downloadManager;
   
longdownloadId
= -
1;
   
privateBitmap
bitmap;
   
privateImageView
imageView;
   
   
   
   
privateDownManagerTask(){}
   
   
publicstatic

DownManagerTask getInstance(){
       
returnDOWN_TASK;
   
}
   
   
@SuppressLint("InlinedApi")
   
publicvoid

init(Context context,ImageView imageView){
       
this.context
= context;
       
this.imageView
= imageView;
       
downloadManager
= (DownloadManager) context.getSystemService(Context.DOWNLOAD_SERVICE);
   
}
   
   
/**
    
*
将下载的图片转化成bitMap
    
*
    
*/
   
@SuppressLint("NewApi")
   
privatevoid

parseBitMap(){
       
try{
           
ParcelFileDescriptor
pfd = downloadManager.openDownloadedFile(downloadId);
           
FileDescriptor
fileDescriptor = pfd.getFileDescriptor(); 
           
bitmap
= BitmapFactory.decodeFileDescriptor(fileDescriptor); 
           
pfd.close();
       
}catch(Exception
e){ 
           
e.printStackTrace();
       
}
   
}
   
   
/**
    
*
下载方法
    
*
@param url
    
*/
   
@SuppressLint("NewApi")
   
publicvoid

download(String url){
       
Log.d(TAG,
url);
       
Uri
uri = Uri.parse(url);
       
DownloadManager.Request
request =
newDownloadManager.Request(uri);
       
request.setAllowedNetworkTypes(Request.NETWORK_MOBILE
               
|
Request.NETWORK_WIFI);
       
request.setAllowedOverRoaming(false);
       
MimeTypeMap
mimeTypeMap = MimeTypeMap.getSingleton();
       
String
mimeString = mimeTypeMap.getMimeTypeFromExtension(MimeTypeMap
               
.getFileExtensionFromUrl(url));
       
request.setMimeType(mimeString);
       
//request.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS,
"Bugdroid.png"); 
       
request.allowScanningByMediaScanner();
       
request.setVisibleInDownloadsUi(true);
       
downloadId
= downloadManager.enqueue(request);
       
Log.d(TAG,"downloadId:"+downloadId);
       
context.registerReceiver(receiver,newIntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
   
}
   
   
publicvoid

unregisterReceiver(){
       
context.unregisterReceiver(receiver);
   
}
   
   
@SuppressLint("NewApi")
   
publicvoid

temp(){
       
Cursor
c = downloadManager.query(
newDownloadManager.Query().setFilterById(downloadId));
       
if(c
!=
null){
           
c.moveToFirst();
           
Log.d(TAG,(c.getString(c.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME))));
           
c.close();
       
}
   
}
   
   
privateBroadcastReceiver
receiver =
newBroadcastReceiver()
{
       
       
@SuppressLint("NewApi")
       
@Override
       
publicvoid

onReceive(Context context, Intent intent) {
           
//这里能够取得下载的id,这样就能够知道哪个文件下载完毕了。适用与多个下载任务的监听
           
if(intent.getAction().equals(DownloadManager.ACTION_DOWNLOAD_COMPLETE)){
               
Log.v(TAG,""+intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,0));
                
Log.v(TAG,"download
complete"
);
                
parseBitMap();
                
imageView.setImageBitmap(bitmap);
                
Toast.makeText(context,"download
complete"
,
Toast.LENGTH_SHORT).show();
           
}
       
}
   
};
   

android download学习记录的更多相关文章

  1. 【Android】学习记录<1> -- 初识ffmpeg

    工作需要用到ffmpeg来进行Android的软编码,对这玩意儿一点都不了解,做个学习记录先. FFmpeg:http://www.ffmpeg.org Fmpeg is the leading mu ...

  2. Android NDK学习记录(一)

    一.NDK环境在Mac中部署 1.准备eclipse,android sdk安装包,android ndk安装包(http://dl.google.com/android/ndk/android-nd ...

  3. mono for android 学习记录

    C#开发Android应用实战(全 扫描 中文版) 学习记录: 拖完控件后,不要急着按F5,需要重新生成,才能自动修改 Resource.Designer.cs 文件 1. Activity 是基于a ...

  4. Android开发技术周报182学习记录

    Android开发技术周报182学习记录 教程 App安全二三事 记录 为什么要安全 App的移动安全主要包括下面几种: 密钥破解,导致本地加密数据被盗取. 通信密钥破解,导致接口数据被盗取. 伪造接 ...

  5. Android开发技术周报176学习记录

    Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...

  6. Android开发技术周报183学习记录

    Android开发技术周报183学习记录 教程 Android性能优化来龙去脉总结 记录 一.性能问题常见 内存泄漏.频繁GC.耗电问题.OOM问题. 二.导致性能问题的原因 1.人为在ui线程中做了 ...

  7. Android学习记录(3)—Android中ContentProvider的基本原理学习总结

    一.ContentProvider简介        当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数据 ...

  8. Android应用基础学习记录

    01_前言 前言,了解了Android的情况.这里也介绍一下本文.本文是记录学习Android应用程序开发过程,视频中使用的Android2.2版本号,我以4.2版本号为基础,找出当中的差异并记录下来 ...

  9. android 学习记录-----------android 活动 意图 碎片

    将此篇博客作为记录android项目开发过程中的学习记录

随机推荐

  1. Android 混淆proguard的实现(图文)

    1.  在Eclipse中的project编译执行后,在文件夹bin以下有生成一些文件,当中classes.dex是未经过混淆生成的.而我们要混淆的话,就要又一次生成一个混淆过的classes.dex ...

  2. AIX 7.1 install python

    周围环境AIX7.1   设备python-2.6.2  因为互联网是非常多的安装文档.而且也没有细挑的版本号.因为我觉得python2.6 可能相对保守一些,至少之前用到的版本号是这个.所以此处依旧 ...

  3. POJ 2538 WERTYU水的问题

    [题目简述]:题意非常easy,没有trick. [分析]:事实上这题还是挺有趣的,在 算法竞赛入门经典中也有这一题. 详见代码: // 120K 0Ms /* 边学边做 -- */ // 字符串:W ...

  4. Android 屏幕实现水龙头事件

    在android下,事件的发生是在监听器下进行,android系统能够响应按键事件和触摸屏事件.事件说明例如以下: onClick(View v)一个普通的点击button事件 boolean onK ...

  5. Asp.net MVC4 +EF6开发

    Asp.net MVC4 +EF6开发的个人网站源码和介绍(仅供新手学习) 本项目是我去年利用业余时间开发的,采用的是asp.net mvc 4 +EF6+三层架构,适合新手进行学习,高手就没有什么价 ...

  6. 【JUnit4.10来源分析】6 Runner

    org.junit.runner.Runner它是JUnit作业引擎.它在许多类型的支持下的.处理试验和生产(Description).Failure和Result和其它输出. Runner参见图主类 ...

  7. 让你提前认识软件开发(17):makefile文件的书写及应用

    第1部分 又一次认识C语言 makefile文件的书写及应用 [文章摘要] makefile用于Linux下整个project的编译.对于Linux下的C/C++语言的编译是至关重要的. 本文以实际的 ...

  8. 【Android基础】点击Back键退出应用程序

    //第一种方法(弹出对话框) @Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-genera ...

  9. Java的socket服务UDP协议

    练习1 接收类 package com.socket.demo; import java.io.IOException; import java.net.DatagramPacket; import ...

  10. 【SSH进阶之路】一步步重构容器实现Spring框架——彻底封装,实现简单灵活的Spring框架(十一)

    文件夹      [SSH进阶之路]一步步重构容器实现Spring框架--从一个简单的容器開始(八)      [SSH进阶之路]一步步重构容器实现Spring框架--解决容器对组件的"侵入 ...