zoukankan      html  css  js  c++  java
  • AsyncTask

      平时用AsyncTask比较多,今天看到了一篇比较细致的讲解,也很有启发。

      当我们调用execute(Params... params)方法后,execute方法会调用onPreExecute()方法,然后由ThreadPoolExecutor实例sExecutor 执行一个FutureTask任务,这个过程中doInBackground(Params... params)将被调用,如果被开发者覆写的doInBackground(Params... params)方法中调用了publishProgress(Progress... values)方法,则通过InternalHandler实例sHandler发送一条MESSAGE_POST_PROGRESS消息,更新进 度,sHandler处理消息时onProgressUpdate(Progress... values)方法将被调用;如果遇到异常,则发送一条MESSAGE_POST_CANCEL的消息,取消任务,sHandler处理消息时 onCancelled()方法将被调用;如果执行成功,则发送一条MESSAGE_POST_RESULT的消息,显示结果,sHandler处理消息 时onPostExecute(Result result)方法被调用。

    经过上面的介绍,相信朋友们都已经认识到AsyncTask的本质了,它对Thread+Handler的良好封装,减少了开发者处理问题的复杂度,提高了开发效率,希望朋友们能多多体会一下。

        我用的比较少的方法就是publishProgress(Progress... values),它会去调用onProgressUpdate(Progress... values)。

       这边很细致的描绘excute之后的流程,比我的理解稍微多一点吧,嘿嘿。其实就是pre-doInBack-post。在doInBack的时候可以画进度。也只有doInBack才是在线程中执行的。

       

  • 相关阅读:
    从属性文件中读取配置
    Page Object Manager
    在Selenium中使用JavaScriptExecutor处理Ajax调用?
    wait
    常用操作
    Selenium收藏官方网址
    PageObject样例
    解决办法-错误:Access denied for user 'root'@'localhost'
    Struts2中的OGNL详解
    用C++,调用浏览器打开一个网页
  • 原文地址:https://www.cnblogs.com/clunyes/p/3008324.html
Copyright © 2011-2022 走看看