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线程启动

07 总结ProgressDialog 异步任务的更多相关文章

  1. Nodejs之路:异步I/O的过程

    对于Node中的异步I/O调用,从发出调用到回调执行,看起来像普通的js异步,但是流程却和普通js那些消息队列完全不同,整个过程经历了哪些? 下面以Windows平台下为例: 一,异步调用第一阶段: ...

  2. File API 读取文件小结

    简单地说,File API只规定怎样从硬盘上提取文件,然后交给在网页中运行的JavaScript代码. 与以往文件上传不一样,File API不是为了向服务器提交文件设计的. 关于File API不能 ...

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

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

  4. C# Socket的TCP通讯 异步 (2015-11-07 10:07:19)转载▼

    异步 相对于同步,异步中的连接,接收和发送数据的方法都不一样,都有一个回调函数,就是即使不能连接或者接收不到数据,程序还是会一直执行下去,如果连接上了或者接到数据,程序会回到这个回调函数的地方重新往下 ...

  5. 07 ProgressDialog

    <span style="font-size:18px;">package com.fmy.example1; import android.app.Activity; ...

  6. NoHttp封装--07 自定义异步任务框架

    MainActivity: public class MainActivity extends Activity implements View.OnClickListener { .... @Ove ...

  7. Java基础知识强化之多线程笔记07:同步、异步、阻塞式、非阻塞式 的联系与区别

    1. 同步: 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回.但是一旦调用返回,就必须先得到返回值了. 换句话话说,调用者主动等待这个"调用"的结果. 对于 ...

  8. 异步消息处理机制Handler

    Android 中的异步消息处理主要由四个部分组成,Message.Handler.MessageQueue 和Looper. 1. Message Message 是在线程之间传递的消息,它可以在内 ...

  9. 异步编程 In .NET

    概述 在之前写的一篇关于async和await的前世今生的文章之后,大家似乎在async和await提高网站处理能力方面还有一些疑问,博客园本身也做了不少的尝试.今天我们再来回答一下这个问题,同时我们 ...

随机推荐

  1. bzoj3211花神游历各国 线段树

    3211: 花神游历各国 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 4252  Solved: 1547[Submit][Status][Discu ...

  2. Codeforces #Round 785(Div.2)

    假的div2 C题没事写什么公式被卡精度了,掉分了gg --------------------------------------------------- A....几个每个字符串预先给好一个代表 ...

  3. Python virtualenv 使用总结篇

    一.virtualenv的安装 1.使用pip全局安装virtualenv,建议使用pip 1.3或更高版本,在1.3之前,pip没有通过SSL从PYPI下载. $ [sudo] pip instal ...

  4. Unix系统的文件打开机构

    当打开一个文件时,建立用户与该文件的联系.其实质是将该文件在辅存中的有关目录信息.辅存i节点及相应的文件地址索引表拷贝到主存中.文件系统中管理这一方面的机构成为打开文件管理机构,简称打开文件机构. 打 ...

  5. SQL_SERVER_2008升级SQL_SERVER_2008_R2的方法

    SQL 2008升级到SQL 2008 R2. 说到为什么要升级是因为,从另一台机器上备份了一个数据库,到我的机器上还原的时候提示"948错误,意思就是不能把高版本的数据库附加到低版本上,所 ...

  6. js黑魔法

    清空一个数组 一直以来,清空一个数组都是var i = [1,2,3]; i = [];,习惯成自然,被自己坑了. 举个例子 var i = [1,2,3]; var obj = {val: i}; ...

  7. Linux必备操作vim

    vim被称作为编辑器之神,那么在我们操作linux系统时,进行编辑操作有没有感觉心有余而力不足?今天我讲自己总结的一些vim的操作命令和大家进行一下分享,有不足之处还请指出. vim的三种模式大家还记 ...

  8. 什么样的简历受HR青睐?

    简历是我们在求职过程中的名片,那么如何写出更容易受到HR青睐的简历呢? HR可能一天要看上百份的简历,他们都希望能够尽快筛选出合适的人,然后用更多的时间去跟候选人沟通.所以招聘人员一般看一份简历只会花 ...

  9. Linux常见目录及命令介绍

    一.Linux中常用的目录介绍:     /        -根目录     /bin    -命令保存目录(普通用户亦可读取的命令)     /boot    -启动目录,启动相关文件     /d ...

  10. Rails报找不到sanitize和raw方法的解决

    以下一段代码作用是对html字符串做过滤作用: sanitize(raw(content.split.map{ |s| wrap_long_string(s) }.join(' '))) 不过实际会报 ...