AsyncTask--实现从网络下载一张图片的功能
来源:互联网 发布:92game 免费源码 编辑:程序博客网 时间:2024/05/17 22:52
1、Android 中的AsyncTask的使用心得
在android程序中一定不能阻塞UI线程,否则很容易就会弹出no respond 的对话框,导致程序退出。为了避免这种情况,一般需要较长时间执行的任务都放在线程中去执行,如从网上下载图片在界面的某个区域显示。但是使用线程回导致cpu开销过大,并且当线程管理不好时也会弹出no respond框。android提供了AsyncTask类用来处理这种情况;例如需要下载图片,然后在songImagButton中显示,下载的逻辑在songImageButton的initImage方法中。
- private class DrawImageTask extends AsyncTask<Void,Integer,Void>{
- //更新图片显示区域,显示图片
- @Override
- protected void onPostExecute(Void params) {
- // TODO Auto-generated method stub
- songImageButton.invalidate();
- this.cancel(false);
- }
- //下载图片
- @Override
- protected Void doInBackground(Void... params) {
- // TODO Auto-generated method stub
- songImageButton.initImage();
- return null;
- }
- }
一般在doInBackground中执行后台的逻辑,如下载图片或其他需要耗时长的任务,onPostExecute方法用来对界面进行操作。如果后台的逻辑有返回值,则由doInBackground返回然后传入onPostExecute方法,然后更新界面。doInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声明的泛型参数列表中指定,第一个为doInBackground接受的参数,第二个为显示进度的参数,第第三个为doInBackground返回和onPostExecute传入的参数。
当然我个人认为AsyncTask不能完全取代线程,在一些逻辑较为复杂或者需要在后台反复执行的逻辑就可能需要线程来实现了。
2、从网络上下载一张图片
注意,需要在 manifest.xml 中添加网络权限:
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
- AsyncTask--实现从网络下载一张图片的功能
- AsyncTask实现下载网络图片
- AsyncTask源码分析及实现网络图片的下载
- (androidStudio)AsyncTask+进度条实现网络下载图片
- python3.2从网络中下载一张图片
- 异步操作AsyncTask(一)从网络下载图片
- AsyncTask专题三之趁热打铁 从网络上下载图片
- 从服务器下载一张图片
- java网络编程:下载网络上的一张图片
- Android程序如何实现从网络中获取一张图片
- 利用AsyncTask下载网络图片
- 通过AsyncTask下载网络图片
- 使用AsyncTask实现网络的图片加载
- 第四章 网络下载之httpurlconnection 从网络上下载一张图片,在本地显示
- Android从网络上下载图片实现
- 从图片上截取一张小图片的实现
- 异步操作AsyncTask(二)从网络下载图片(带下载进度数据)
- 基于AsyncTask的带进度条的下载功能Demo实现
- 解决fedora版本升级boot分区不够的问题
- RPM 命令 详细介绍(软件包文件名中的i386,i686)
- c#中导出Excel的问题检索 COM 类工厂……
- MATLAB工具箱的安装(总结)
- 工具备忘
- AsyncTask--实现从网络下载一张图片的功能
- 几个java类的区别
- 关于批处理中的变量
- 正则表达式之最短匹配
- Linux本地root密码破解方法
- http://www.reddragonfly.org/abscn/dosbatch.html
- C语言字节对齐详解
- 解决使用迅雷下载页面而不是文件的问题
- CR LF (转)