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

[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. Java NIO内存映射---上G大文件处理(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了java中内存映射的原理及过程,与传统IO进行了对比,最后,用实例说明了结果 ...

  2. Codeforces Round #257 (Div. 2) D题:Jzzhu and Cities 删特殊边的最短路

    D. Jzzhu and Cities time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  3. sql分隔字符串数组

    declare @relation_code nvarchar(1024) set @relation_code = '#10000#10002' set @relation_code=substri ...

  4. BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并公布App

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第7章节--打包并部署SP2013 Apps 打包并公布App         如今既然你理解了一个app的四个主要部分, ...

  5. 在linux上创建nfs遇到的问题。

    我们部署程序时,图片server是单独的一台server,有自己独立的域名.而应用部署在还有一台server上,我们使用一些附件上传工具.比方ajaxfileupload上传附件时是无法跨域訪问的. ...

  6. 【Web探索之旅】第二部分第三课:框架和内容管理系统

    内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库   第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby ...

  7. File类基本操作之OutputStream字节输出流

    贴代码了,已经測试,可正常编译 package org.mark.streamRW; import java.io.File; import java.io.FileOutputStream; imp ...

  8. C++四种类型的转换

    在C/C++使用的语言 (type) value(您还可以使用type(value))对于显式类型转换,经常提到投.转换程序猿的精度等完全掌握手,一个传统投往往是过度使用.成为C++要根源. 为了降低 ...

  9. 获取鼠标点击相对于Canva位置的2种方法

    如果给Canvas添加 onmousedown事件,获取到的鼠标位置都是相对于当前文档的位置(x,y):

  10. Grant的时候报错的解决:Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)

    mysql> grant all on *.* to 'root'@'192.168.1.1' identified by 'password'; ERROR 1045 (28000): Acc ...