首页 > 其他分享 >Android 中的AsyncTask的使用心得

Android 中的AsyncTask的使用心得

时间:2023-02-27 13:32:34浏览次数:46  
标签:doInBackground AsyncTask 线程 onPostExecute 参数 Android 心得 图片


Android 中的AsyncTask的使用心得

在android程序中一定不能阻塞UI线程,否则很容易就会弹出no respond 的对话框,导致程序退出。为了避免这种情况,一般需要较长时间执行的任务都放在线程中去执行,如从网上下载图片在界面的某个区域显示。但是使用线程回导致cpu开销过大,并且当线程管理不好时也会弹出no respond框。android提供了AsyncTask类用来处理这种情况;例如需要下载图片,然后在songImagButton中显示,下载的逻辑在songImageButton的initImage方法中。

Java代码



1.     private class DrawImageTask extends AsyncTask<Void,Integer,Void>{   
2. //更新图片显示区域,显示图片
3. @Override
4. protected void onPostExecute(Void params) {
5. // TODO Auto-generated method stub
6. songImageButton.invalidate();
7. this.cancel(false);
8. }
9. //下载图片
10. @Override
11. protected Void doInBackground(Void... params) {
12. // TODO Auto-generated method stub
13. songImageButton.initImage();
14. return null;
15. }
16.
17. }

  一般在doInBackground中执行后台的逻辑,如下载图片或其他需要耗时长的任务,onPostExecute方法用来对界面进行操作。如果后台的逻辑有返回值,则由doInBackground返回然后传入onPostExecute方法,然后更新界面。doInBackground方法和onPostExecute的参数必须对应,这两个参数在AsyncTask声明的泛型参数列表中指定,第一个为doInBackground接受的参数,第二个为显示进度的参数,第第三个为doInBackground返回和onPostExecute传入的参数。

 当然我个人认为AsyncTask不能完全取代线程,在一些逻辑较为复杂或者需要在后台反复执行的逻辑就可能需要线程来实现了。

标签:doInBackground,AsyncTask,线程,onPostExecute,参数,Android,心得,图片
From: https://blog.51cto.com/u_15070324/6088364

相关文章

  • android开发 - 拍照和选择本地图片库
    1.首先在布局文件中定义两个按钮 2.开启摄像头或者选择本地库privatefinalintIMAGE_RESULT_CODE=1;//拍照意图回传值结果码</span>privatefinalintIMAGE_RESULT_OP......
  • android开发httpGet httpPost httpURLConnection httpClient
    <pstyle="margin:10pxauto;padding-top:0px;padding-bottom:0px;line-height:18px;color:rgb(68,68,68);font-family:tahoma,arial,sans-serif;"><strong......
  • 局域网实现PC、Pad、Android互联
    目录局域网实现PC、Pad、Android互联一、网络邻居1、Windows配置1.1开启共享功能1.2设置用户1.3共享文件夹2、Pad连接二、FTP&HTTP1、电脑配置1.1HTTP服务1.2......
  • 2月26日Android开发学习
    1.App运行日志Android采用Log工具打印日志,他讲各类日志划分为五个等级(1)Log.e:表示错误信息,比如可能导致程序崩溃的异常。(2)Log.w:表示警告信息。(3)Log.i:表示一般......
  • Android布局基础知识
    wrap_content:是layout_width和layout_height的属性值之一,表示和自身内容一样的长度。match_parent:是layout_width和layout_height的属性值之一,表示和父组件一样的长度。......
  • Android开发
    Button(按钮)Button是TextView的子类,所以TextView上很多属性也可以应用到Button上!我们实际开发中对于Button的,无非是对按钮的几个状态做相应的操作,比如:按钮按下的时候用一......
  • android stdio中button的按下与松开实现图标转换
    首先在res目录下的drawable文件夹下创建select功能的.xml文件,然后下载两张图片drawable文件夹(图片名称开头不可以是数字),第二步,在.xml文件中添加如下两行代码<itemandr......
  • 今天整理一下Android studio安装时遇到的问题-心血来潮
    1:每日总结-23.2.21-lao_bing-博客园(cnblogs.com)2:Androidstudio安装教程_一纸梦的博客-CSDN博客_androidstudio3:AndroidStudio中创建项目时,activity_main.xml不......
  • Android studio-ImageView
    1:创建新项目方法:https://blog.csdn.net/cpcpcp123/article/details/1053248392:ImageView:<?xmlversion="1.0"encoding="utf-8"?><androidx.constraintlayout.widget.Cons......
  • 学习android中遇到的问题以及解决方法
    问题:在使用button控件时发现不管是背景颜色或者图片设置之后不会改变原因:因为androidstudio在某版本之后默认所有Button都是Material类型的Button,默认使用主题色,所以想......