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

[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. [Windows Phone]解锁、注册Windows Phone实体手机为开发机(Windows 8)

    原文:[Windows Phone]解锁.注册Windows Phone实体手机为开发机(Windows 8) 前言 ? ? 最近要开发Windows Phone(以下简称WP)的手机游戏,由於使用模 ...

  2. ios-上拉电阻负载许多其他接口

    想尝试拉加载意识到有多少开始了他的研究之旅,我看了两天做出最终的界面. 之所以这么慢是由于,我不知道要将上拉出现的view放在哪.就能在scrollView拉究竟部的时候被拉出来.还有就是怎么拉出来之 ...

  3. android下调试声卡驱动之概述

    在Android中音频系统使用的是ALSA系统架构.ASoC--ALSA System on Chip .是建立在标准ALSA驱动层上,为了更好地支持 嵌入式处理器和移动设备中的音频Codec的一套软 ...

  4. 从一开始,说出事java匿名内部类

    java内部类.匿名类原本以为它们的使用已经很滑, 成绩, 就在昨天晚上12指向时钟发生重大事故.事故的严重程度再说吧,那是因为我没有睡一晚睡眠. 那以下先用一段模拟代码来描写叙述下我出现的问题的: ...

  5. [LeetCode217]Contains Duplicate

    题目:Given an array of integers, find if the array contains any duplicates. Your function should retur ...

  6. hdu 1298 T9(特里+DFS)

    pid=1298" target="_blank" style="">题目连接:hdu 1298 T9 题目大意:模拟手机打字的猜想功能.依据概 ...

  7. 条形码/二维码之开源利器ZXing图文介绍(转)

    继前面介绍的一个日本开源软件(该软件只能实现QRCode)原文: Java实现二维码QRCode的编码和解码(http://sjsky.iteye.com/blog/1136934 ),今发现又一优秀 ...

  8. Insecure default in Elasticsearch enables remote code execution

    Elasticsearch has a flaw in its default configuration which makes it possible for any webpage to exe ...

  9. 使用jquery点击一个实现button或连接,进行以下div显示,在点击隐藏

    jquery代码: <script type="text/javascript" src="js/jquery-1.7.2.js"></scr ...

  10. Java网络编程注意事项3

    如何使用POST请求和GET请求Web网站发送请求,下面的参考代码: import java.io.BufferedReader; import java.io.InputStream; import ...