当前位置: 首页 > news >正文

网站开发证书搜索引擎广告名词解释

网站开发证书,搜索引擎广告名词解释,巧克力软文范例200字,amp 网站开发分析#xff1a;在分析实现流程之前#xff0c;我们先了解一下AsyncTask有哪些成员变量。privatestaticfinalintCORE_POOL_SIZE 5;//5个核心工作线程privatestaticfinalintMAXIMUM_POOL_SIZE 128;//最多128个工作线程privatestaticfinalintKEEP_ALIVE 1;//空闲线程的超时时间…分析在分析实现流程之前我们先了解一下AsyncTask有哪些成员变量。privatestaticfinalintCORE_POOL_SIZE 5;//5个核心工作线程privatestaticfinalintMAXIMUM_POOL_SIZE 128;//最多128个工作线程privatestaticfinalintKEEP_ALIVE 1;//空闲线程的超时时间为1秒privatestaticfinalBlockingQueue sWorkQueue newLinkedBlockingQueue(10);//等待队列privatestaticfinalThreadPoolExecutorsExecutor newThreadPoolExecutor(CORE_POOL_SIZE,MAXIMUM_POOL_SIZE, KEEP_ALIVE, TimeUnit.SECONDS, sWorkQueue,sThreadFactory);//线程池是静态变量所有的异步任务都会放到这个线程池的工作线程内执行。回到例子中点击按钮之后会新建一个GetCSDNLogoTask对象GetCSDNLogoTask task newGetCSDNLogoTask();此时会调用父类AsyncTask的构造函数AsyncTask.javapublicAsyncTask() {mWorker newWorkerRunnable() {publicResult call()throwsException {Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);returndoInBackground(mParams);}};mFuture newFutureTask(mWorker) {Overrideprotectedvoiddone() {Message message;Result result null;try{result  get();}catch(InterruptedException e) {Android.util.Log.w(LOG_TAG, e);}catch(ExecutionException e) {thrownewRuntimeException(An error occured while executing doInBackground(),e.getCause());}catch(CancellationException e) {message  sHandler.obtainMessage(MESSAGE_POST_CANCEL,newAsyncTaskResult(AsyncTask.this, (Result[])null));message.sendToTarget();//取消任务发送MESSAGE_POST_CANCEL消息return;}catch(Throwable t) {thrownewRuntimeException(An error occured while executing doInBackground(), t);}message  sHandler.obtainMessage(MESSAGE_POST_RESULT,newAsyncTaskResult(AsyncTask.this, result));//完成任务发送MESSAGE_POST_RESULT消息并传递result对象message.sendToTarget();}};}WorkerRunnable类实现了callable接口的call()方法该函数会调用我们在AsyncTask子类中实现的doInBackground(mParams)方法由此可见WorkerRunnable封装了我们要执行的异步任务。FutureTask中的protected void done() {}方法实现了异步任务状态改变后的操作。当异步任务被取消会向UI线程传递MESSAGE_POST_CANCEL消息当任务成功执行会向UI线程传递MESSAGE_POST_RESULT消息并把执行结果传递到UI线程。由此可知AsyncTask在构造的时候已经定义好要异步执行的方法doInBackground(mParams)和任务状态变化后的操作(包括失败和成功)。当创建完GetCSDNLogoTask对象后执行task.execute(http://www.linuxidc.com/pic/logo.gif);此时会调用AsyncTask的execute(Params...params)方法AsyncTask.javapublicfinalAsyncTask execute(Params... params) {if(mStatus ! Status.PENDING) {switch(mStatus) {caseRUNNING:thrownewIllegalStateException(Cannot execute task: the taskis already running.);caseFINISHED:thrownewIllegalStateException(Cannot execute task: the taskhas already been executed (a task canbe executed only once));}}mStatus  Status.RUNNING;onPreExecute();//运行在ui线程在提交任务到线程池之前执行mWorker.mParams  params;sExecutor.execute(mFuture);//提交任务到线程池returnthis;}当任务正在执行或者已经完成会抛出IllegalStateException由此可知我们不能够重复调用execute(Params...params)方法。在提交任务到线程池之前调用了onPreExecute()方法。然后才执行sExecutor.execute(mFuture)是任务提交到线程池。前面我们说到当任务的状态发生改变时(1、执行成功2、取消执行3、进度更新)工作线程会向UI线程的Handler传递消息。在《Android异步处理三HandlerLooperMessageQueue深入详解》一文中我们提到Handler要处理其他线程传递过来的消息。在AsyncTask中InternalHandler是在UI线程上创建的它接收来自工作线程的消息实现代码如下AsyncTask.javaprivatestaticclassInternalHandlerextendsHandler {SuppressWarnings({unchecked,RawUseOfParameterizedType})OverridepublicvoidhandleMessage(Message msg) {AsyncTaskResult result (AsyncTaskResult) msg.obj;switch(msg.what) {caseMESSAGE_POST_RESULT:// There is onlyone resultresult.mTask.finish(result.mData[0]);//执行任务成功break;caseMESSAGE_POST_PROGRESS:result.mTask.onProgressUpdate(result.mData);//进度更新break;caseMESSAGE_POST_CANCEL:result.mTask.onCancelled();//取消任务break;}}}当接收到消息之后AsyncTask会调用自身相应的回调方法。总结1、 AsyncTask的本质是一个静态的线程池AsyncTask派生出的子类可以实现不同的异步任务这些任务都是提交到静态的线程池中执行。2、线程池中的工作线程执行doInBackground(mParams)方法执行异步任务3、当任务状态改变之后工作线程会向UI线程发送消息AsyncTask内部的InternalHandler响应这些消息并调用相关的回调函数
http://www.zqtcl.cn/news/86566/

相关文章:

  • 提供网站建设公司哪家好固镇网站建设哪家好?
  • 临湘网站四川网站建设外包
  • 潍坊个人做网站的公司怎么注册公司的邮箱
  • 广东建设执业资格中心网站山东网站建设哪家权威
  • 无锡做网站 选众诺网站平面设计
  • farfetch 购物网站网站写好了怎么做后台管理
  • 嘉兴网站设计999 999酒店小程序定制开发
  • 网站建设管理人员工作职责做网站怎么接业务
  • 做网站销售话术网站策划的重要性
  • 广东广东网站建设工作太极馆如何做网站
  • 网站开发 私活昆明seo排名外包
  • 成都网站建设成功案例单招网wap注册
  • 漳州做网站的公司wordpress 5.1不提示自动更新
  • wordpress 增加子目录网站排名优化公司推荐
  • 怎么查看网站快照企业融资的10种方法
  • 广州做网站 timhi宝塔系统搭建wordpress
  • 网站后台英语建筑网下载
  • 网站网域名查询wordpress404文件不存在
  • 信用网站标准化建设模块都有哪些wordpress页尾添加信息
  • 京东联盟怎么做CMS网站站内搜索工具
  • 下沙经济开发区建设局网站有哪些做外贸的网站
  • 计算机学习网站电商平台开发系统
  • 番禺网站设计与制作wordpress国外主题网站模板
  • 深圳品牌网站制作推荐重庆建设行政主管部门网站
  • 网站备案前置审批类型wordpress 文字 居中
  • 网站建设设计ppt在线动画手机网站模板
  • 保障房建设网站首页网页版微信不能登录的原因
  • 图片网站模板下载网站页面设计流程
  • 网站如何做移动网站做网站合同范本
  • 网站降权的表现线上销售渠道