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

[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. 【原创】用Python爬取LeetCode的AC代码到Github

    在leetCode写了105道题高调膜科,考虑搬迁到自己的GitHub上,做成一个解题题库,面试的时候也可以秀一个 但是!但是! leetCode在线IDE的功能不要太舒服,我直接线上A了不少题,本地 ...

  2. Thinkphp编辑器扩展类kindeditor用法

    一, 使用前的准备. 使用前请确认你已经建立好了一个Thinkphp站点项目. 1,Keditor.class.php和JSON.class.php 是编辑器扩展类文件,将他们拷贝到你的站点项目的Th ...

  3. OpenGL之路(八)加入�光照效果和键盘控制

    在opengl中加入�光照的效果,可用键盘控制放大缩小 w键放大 s键缩小 d键开关灯 预览效果例如以下: 源代码例如以下: #include <gl/glut.h> #include & ...

  4. Error Code: 1318. Incorrect number of arguments for PROCEDURE company.new_procedure; expected 2, got

    1.错误叙述性说明 20:27:34 call new_procedure(20150112) Error Code: 1318. Incorrect number of arguments for ...

  5. android横竖屏控制

    代码中设置activity屏幕为全屏,并设置横竖屏状态 getwindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowM ...

  6. 【SQL】Oracle的PL/SQL语法及其拓展数据类型总结

    PL/SQL语法 PL/SQL程序由三部分组成,声明部分.执行部分.异常处理部分. 模板: DECLARE /*变量声明*/ BEGIN /*程序主体*/ EXCEPTION /*异常处理部分*/ E ...

  7. Ubuntu在构建Robotframework+Selenium周围环境

    最近经历了从Windows进入系统Ubuntukylin下列.因此,测试工具也需要被重新安装,今天和共享安装过程. 我用的是环境:Ubuntu Kylin 14.04 64Bit系统. 启动权,首先, ...

  8. JMS分布式应用程序异步消息解决方案EhCache 高速缓存同步问题

    部分博客中描述的使用拦截器怎么用EJB公布的WebService加入缓存,这样能够提高WebService的响应效率.但是即使是这样做,还是要经历网络的传输的.于是决定在调用WebService的程序 ...

  9. MongoDB日常保养

    它引入了程序来进行维护管理工具 MongoDB的日常维护包含使用配置文件,设置訪问控制.Shell交互,系统监控和管理,数据库日常备份和恢复 启动和停止MongoDB 启动后能够通过数据库的IP加po ...

  10. 家庭洗车APP --- Androidclient开展 之 网络框架包介绍(一)

    家庭洗车APP --- Android客户端开发 之 网络框架包介绍(一) 上篇文章中给大家简单介绍了一些业务.上门洗车APP --- Android客户端开发 前言及业务简单介绍,本篇文章给大家介绍 ...