1,ProgressDialog
    >        //使用对象  设置标题
            progressDialog.setTitle("标题");
            //设置图标
            progressDialog.setIcon(R.drawable.ic_launcher);
            //设置展示的内容
            progressDialog.setMessage("正在下载请稍等....");
            //设置样式
            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
            //展示
            progressDialog.show();

2,UI线程和工作线程
    >Ui线程也是Main线程  负责会在UI界面和事件分发

俩个主要要素:
            >1,在Ui线程不能做阻塞操作  (在主线程阻塞超过5s程序出错  "程序无反应")
            >2,在主线程以外的线程(子线程)不能更新UI

3, 什么是异步任务
    >在子线程做耗时操作  将结果回调到主线程

4, 为什么要使用异步任务
    
    >1,在Ui线程不能做阻塞操作  (在主线程阻塞超过5s程序出错  "程序无反应")  4.0以后  不允许在主线程下载
    >2,在主线程以外的线程(子线程)不能更新UI

* 1,创建一个类 继承AsyncTask,同时声明三个参数
     * Params:子线程执行方法里参数类型
     * Progress;子线程执行任务的进度类型 如果不想展示进度  Void
     * Result:子线程执行任务的结果类型
     *
     * 2,实现核心方法
     * doInBackground(String... params){}
     *
     * onPostExecute(byte[] result)
     *
     * 3,在主线程中执行异步请求

>完整的AsyncTask
    public class MyAsyncTask extends AsyncTask<String, Integer, List<String>>{
        
        /**
         * 在首次执行异步任务时  调用此方法   做初始化操作
         */
        @Override
        protected void onPreExecute() {
            // TODO Auto-generated method stub
            super.onPreExecute();
        }

/**
         * 在子线程中执行   做耗时操作
         */
        @Override
        protected List<String> doInBackground(String... params) {
            // TODO Auto-generated method stub
            //publishProgress(values)
            return null;
        }
        /**
         * 更新进度的方法   在doInBackground中 执行publishProgress(values)  将进度值发送给onProgressUpdate
         */
        @Override
        protected void onProgressUpdate(Integer... values) {
            // TODO Auto-generated method stub
            super.onProgressUpdate(values);
        }
        
        /**
         * 在主线程中更新UI 在执行完doInBackground之后执行 onPostExecute
         */
        @Override
        protected void onPostExecute(List<String> result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
        }
        
        
        //点击其他按钮  取消AsyncTask时  执行此方法
        @Override
        protected void onCancelled(List<String> result) {
            // TODO Auto-generated method stub
            super.onCancelled(result);
        }
        
        
        
    }

5, 设置View的显示与隐藏
    >visibility=""
        >gone:        隐藏 不占空间
        >visible      显示
        >invisible    隐藏  占空间

>setVisibility()
        >View.GONE
        >View.VISIBLE
        >View.INVISIBLE
6,  AsyncTask注意事项:
    >1,AsyncTask实例只能调用一次
    >2,必须在Ui线程得到AsyncTask对象
    >3,AsyncTask方法 系统自动调用
    >4,数据进行交互(子线程和主线程交互)AsyncTask,否则开启一个线程就行
    >5,异步任务必须在UI线程启动

转载于:https://www.cnblogs.com/muyuge/p/6152285.html

07 总结ProgressDialog 异步任务相关推荐

  1. SAP工具箱 自动生成发出接口程序(二 接口定义表)

    点击蓝字 关注我们 一 前言 前文介绍了发出接口程序的执行原理及怎么自动生成发出接口程序. 详见链接 无峰,公众号:ABAP 技巧与实战SAP工具箱 自动生成发出接口程序(一) 本文主要介绍生成发出接 ...

  2. tp5更新某字段加1_tp5.1 实现setInc字段自动加1

    有了基础页面的支撑,想要提高页面的用户体验,那么异步的数据加载目前来说是最好的处理方式了.Ajax分页是练手的最好应用场景,运用到的知识点,在上节课老友记之PHP7留言板开发(Aj 2020-12-1 ...

  3. 异步线程AsyncTask_2示例(07)

    2019独角兽企业重金招聘Python工程师标准>>> //异步线程AsyncTask:开启线程下载,配合Json解析,还有适配器进度条.等控件使用(07)public class ...

  4. android一个简单的异步AsyncTask下载数示例,简单下载(07)

    2019独角兽企业重金招聘Python工程师标准>>> public class MainActivity extends Activity {private ImageView i ...

  5. android的progressDialog 的使用。android数据异步加载 对话框提示

    在调用的Activity中定义一个全局的 progressDialog 点击按钮的时候调用下面这句 progressDialog = ProgressDialog.show(SearchActivit ...

  6. Spring Cloud【Finchley】实战-07异步下单

    文章目录 概述 Product微服务改造 接入配置中心 Step1 引入依赖 Step2 远端Git存储中心,新增artisan product模块的配置文件 接入消息队列 Step1 引入依赖 St ...

  7. 使用异步任务加载网络上的图片

    我们知道,如果要加载一个很耗时的操作,会阻塞主线程,这时我们可以想到开启一个新的线程,避免阻塞,在android中也有这样的问题,我们可以用异步任务来操作,异步任务也是开启一个线程,线程里面发一个消息 ...

  8. C# 异步读取数据库里面的数据与绑定UI的解决办法

    异步读取数据库,在数据绑定的时候会出现点问题,就是窗体界面会无法关闭,要结束任务才能结束进程.例如下面代码 首先按习惯的方法,设定线程更新UI a2.CheckForIllegalCrossThrea ...

  9. Android Handler 异步消息处理机制的妙用 创建强大的图片载入类

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/38476887 ,本文出自[张鸿洋的博客] 近期创建了一个群.方便大家交流,群号: ...

最新文章

  1. 装java 无法应用转换程序_应用程序崩溃“android.app.Application无法强制转换为”...
  2. 漫画 | TCP,一个悲伤的故事
  3. 互联网项目开始时需要去谈的产品需求分析:
  4. 南京工程学院 嵌入式linux 复习
  5. 测者的测试技术手册:揭开java method的一个秘密--巨型函数
  6. elementui下拉框 清空_巧妙解决element-ui下拉框选项过多的问题
  7. RAN adjusts schedule for 2nd wave of 5G specifications
  8. java 优势论文_【是时候升级java11了】 jdk11优势和jdk选择
  9. configure: error: Can‘t find ext2fs library
  10. multisim连接MySQL_Multisim14使用multisim12元件库的方法
  11. HTTP网页URL链接的语法格式最详细的分析与介绍
  12. I.MX6UL核心模块tf卡启动linux的实现
  13. vulntarget-a靶场的学习思考
  14. 左偏树(XJT Love Trees,玲珑杯 Round#8 C lonlife 1081)
  15. android 符号表情显示乱码,微信昵称含中文、特殊字符、emoji表情乱码的后台解决方案...
  16. E3亮点:StudioMDHR的《茶杯头》
  17. GreenDao的简单学习(附带demo源码)
  18. 微信支付-扫码支付方式在ThinkPHP商城中的使用(第二部分)
  19. html的高度塌陷,html高度塌陷以及定位的理解
  20. Axure交互模拟线框图等等

热门文章

  1. Yarn 和 Npm 命令行切换 摘录
  2. 电脑内存占用莫名很高_CPU占用高,电脑莫名卡顿?万能的重启拯救不了就用这3招,妥了!...
  3. Ubuntu下安装Oracle11g(图文教程)
  4. 稀疏矩阵的转置c语言程序,程序有问题求大神,稀疏矩阵转置
  5. jq的插件 vue中引用_详解如何在 vue 项目里正确地引用 jquery 和 jquery-ui的插件
  6. mac cad石材填充图案_CAD电视背景墙画法步骤
  7. 《javaScript100例|02》超级经典一套鼠标控制左右滚动图片带自动翻滚
  8. 搬家后第一次缴电费,查询客户编号的解决办法
  9. 计算机考研数学基础知识点,2019计算机考研数学复习:打好基础是必须的啊喂!...
  10. Burp Collaborator 使用总结