2019独角兽企业重金招聘Python工程师标准>>>

public class MainActivity extends Activity {private ImageView image_load;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.image_load = (ImageView) this.findViewById(R.id.image_load);}public void download(View view) {String url = "http://litchiapi.jstv.com/Attachs/Top/11949/e650e0201de541d2ba91dca202b0fcfe.jpg";// 调用异步任务,执行网络访问,注意联网要权限new MyTask(this).execute(url);// 不用提示框时new MyTask()不加加入当前this,不用构造函数,}class MyTask extends AsyncTask<String, Void, byte[]> {/** //AsyncTask三个重要参数:Params: 是一个可变数组 //Progress:进度条,没有时写为void ,* //Result:结果参数,一般为byte[]数组*/private ProgressDialog pDialog;// 不用在布局文件配置这个对话框public MyTask(Context context) {// 创建提示对话框pDialog = new ProgressDialog(context);// 当前上下文的对话框pDialog.setTitle("提示");pDialog.setMessage("正在下载.....");pDialog.setIcon(R.drawable.ic_launcher);}// 主线程运行, 在doInBackground之前执行@Overrideprotected void onPreExecute() {super.onPreExecute();Log.i("MainActivity", "onPreExecute : "+ Thread.currentThread().getName());pDialog.show();// 在doInBackground之前执行,打开对话框}@Override// 在子线程中调用后台执行protected byte[] doInBackground(String... params) {Log.i("MainActivity", "onPostExecute : "+ Thread.currentThread().getName());String url = params[0];HttpClient client = new DefaultHttpClient();HttpGet get = new HttpGet(url);try {HttpResponse response = client.execute(get);if (response.getStatusLine().getStatusCode() == 200) {return EntityUtils.toByteArray(response.getEntity());}} catch (ClientProtocolException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return null;}// onPostExecute在主线程中执行,在doInBackground后执行,进行UI更新操作@Overrideprotected void onPostExecute(byte[] result) {Log.i("MainActivity", "onPostExecute : "+ Thread.currentThread().getName());super.onPostExecute(result);if (result != null) {Bitmap bitmap = BitmapFactory.decodeByteArray(result, 0,result.length);image_load.setImageBitmap(bitmap);} else {Toast.makeText(MainActivity.this, "网络异常!", Toast.LENGTH_SHORT).show();}pDialog.dismiss();// 下载完关闭对话框}}
}
//布局
<ImageViewandroid:id="@+id/image_load"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/btn_load"android:layout_width="wrap_content"android:layout_height="wrap_content"android:onClick="download"android:layout_below="@+id/image_load"android:text="下载" />

转载于:https://my.oschina.net/u/2541146/blog/603761

android一个简单的异步AsyncTask下载数示例,简单下载(07)相关推荐

  1. java简单实现在线资源多线程下载,断点续存,限制最大正在下载数

    为什么要使用多线程下载,断点续存,限制最大正在下载数 多线程下载已经提高了下载的效率,但是当一些特殊情况发生的时候,我们需要对程序进行处理,这样效率会更高.比如,断电断网等造成下载中断,那么我们下一次 ...

  2. android 中使用AsyncTask实现简单的异步编程

    在开发移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用户体验.但是在子线程中无法去操作主线程(UI 线程),在子线程中操作UI ...

  3. android异步编程,AsyncTask简单的异步编程android 中的实现

    类型:行业软件大小:1.5M语言:中文 评分:5.0 标签: 立即下载 在开发移动客户端的时候往往要使用多线程来进行操作,我们通常会将耗时的操作放在单独的线程执行,避免其占用主线程而给用户带来不好的用 ...

  4. android服务下载apk,Android 一个简单的版本更新下载apk小示例

    一.简介: 1.运用 okhttp + notification 通知栏带进度的下载apk,下载完毕后并自动安装,如果用户取消可在通知栏点击安装,点击一次通知栏移除,同时支持自动静默下载(后台默默下载 ...

  5. Android AsyncTask 深度理解、简单封装、任务队列分析、自定义线程池

    前言:由于最近在做SDK的功能,需要设计线程池.看了很多资料不知道从何开始着手,突然发现了AsyncTask有对线程池的封装,so,就拿它开刀,本文将从AsyncTask的基本用法,到简单的封装,再到 ...

  6. Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比

    Android 应用开发 之通过AsyncTask与ThreadPool(线程池)两种方式异步加载大量数据的分析与对比 标签: AndroidAsyncTaskThreadPool异步加载view 2 ...

  7. Android——一个简单的APP模版

    Android--一个简单的APP模版 述 效果视频 技术栈 地图.定位.导航 地图 定位 导航 偏好设置 当前导航信息 预定车位和订单结算 创建订单 计时服务传导 后台服务计时 订单结算 个人信息 ...

  8. AsyncTask 异步任务基本使用--下载视频

    转载请注明出处:http://blog.csdn.net/vnanyesheshou/article/details/73613706 本文已授权微信公众号 fanfan程序媛 独家发布 扫一扫文章底 ...

  9. Android APP更新下载工具类——简单封装DownloadManager

    几乎所有APP都包含了检查更新功能,更新下载功能的实现方式常用的有两种:1.使用App网络框架的文件下载请求:2.使用自带的DownloadManager类:本文介绍第二种,简单封装一下Downloa ...

最新文章

  1. javascript语言学习
  2. 人类快感程度体验等级
  3. linux fsck exited with status code 4,linux – 在硬盘崩溃后启动PostgreSQL服务器导致FAILED STATE...
  4. 周报措辞规范(周报规范用语、不规范用语)
  5. Hihocoder-1135-Magic Box
  6. Round A - Kick Start 2019
  7. JavaScript中的内置对象-8--4.date对象中-获取,设置日期时间的方法; 获取,设置年月日时分秒及星期的方法;...
  8. 开发模式遵循的规则_研究每个软件开发人员应遵循的10条规则
  9. 端口扩展器技术让网络交换焕然一新
  10. python语言常用语法汇总
  11. 如何使用QGIS下载Google地图的遥感影像
  12. 好用的5款火狐浏览器必备插件,每一款都很实用
  13. python爬虫实践(三)——爬取煎蛋网图片
  14. UVA - 10827 Maximum sum on a torus(dp最大子矩阵和)
  15. 如何在python中获得当前时间前几天的日期
  16. OpenStack Ironic 裸金属的配置及使用
  17. Tivoli Netcool/OMNIbus
  18. JAVA 安全-JWT 安全及预编译 CASE 注入等
  19. 第09篇 Compose-03 操作详解
  20. ONNX 运行时报错 ORT_RUNTIME_EXCEPTION Ort::Exception 未经处理的异常

热门文章

  1. 【pytorch】nn.conv1d的使用
  2. java 多线程bean 注入_java多线程中注入Spring对象问题
  3. 如何保证消息的顺序性
  4. 1 代码_给你代码:Workbox介绍(1)
  5. php与nginx链接,Nginx与PHP的交互
  6. Nginx配置跨域请求 Access-Control-Allow-Origin *
  7. Spring Boot 2.3 中开启Spring Security
  8. stm32万年历流程图_STM32实现万年历..
  9. 渗透测试与自动化安全测试工具比较
  10. plsql连接oracle无响应,求教 pl/sql连接本机数据库是未响应问题