加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

如何优化Android异步请求服务器数据?

发布时间:2018-12-22 06:27:41 所属栏目:业界 来源:今日头条
导读:在互联网驱动的天下中,移动应用措施必要共享和吸取来自其产物的后端(譬喻,来自数据库)以及来自第三方来历(如Facebook和Twitter)的信息,这些交互凡是通过RESTful API举办。当哀求数目增进时,这些哀求的天生方法对付开拓变得很是要害,由于获取数据

在互联网驱动的天下中,移动应用措施必要共享和吸取来自其产物的后端(譬喻,来自数据库)以及来自第三方来历(如Facebook和Twitter)的信息,这些交互凡是通过RESTful API举办。当哀求数目增进时,这些哀求的天生方法对付开拓变得很是要害,由于获取数据的方法确实会影相应用措施的用户体验。

怎样优化Android异步哀求处事器数据?

同步哀求的举动在处事器相应之前保持空闲状态,同步哀求会阻止接口增进计较时刻并使移动应用措施无相应。于是就异步哀求呈现,当客户端向处事器发出哀求时,处事器将哀求分配给变乱处理赏罚措施,注册回调并继承执行下一个哀求,当相应可用时,将行使功效相应客户端。这是一种更好的要领,由于异步哀求应承独立执利用命。

怎样优化Android异步哀求处事器数据?

上图表现了两种编程要领在客户端 - 处事器模子中的差异之处。在Android中,UI线程(凡是称为主线程)是基于与异步编程沟通的道理。

Android UI器材包不是线程安详的,假如事变线程(执行举办收集挪用的使命)更新Android UI器材包,则也许导致未界说和不测的举动,追踪这也许是坚苦且耗时的。单线程模子确保UI不会同时被差异的线程修改,因此,假如我们行使来自收集的图像更新ImageView,则事变线程将在单独的线程中执行收集操纵,而ImageView将由UI线程更新,这可确保操纵是线程安详的。UI线程提供须要的同步,它尚有助于UI线程始终长短阻塞的,由于现实使命在事变线程的靠山产生的。

总之,请遵循Android开拓中的两个简朴法则:

  • 不该阻止UI线程。
  • 不该从非UI事变线程直接更新UI器材包。

在Android应用假如您必要在用户与应用措施交互时在主线程之外执行事变,最好行使AsyncTask或Volley等收集库。

以下是行使AsyncTask实现异步事变线程的要领:

  1. Subclass AsyncTask实现该onPreExecute()要领,,它将建设一个toast动静,表白收集挪用即将产生。
  2. 实验doInBackground(Params...)要领,顾名思义,doInBackground是事变线程举办收集挪用并保持主线程免费。
  3. 因为事变线程无法直接更新UI,因此我实现了本身的postExecute(Result)要领,该要领将从收集挪用中提供功效并在UI线程中运行,以便可以安详地修改用户界面。
  4. 靠山使命的进度可以行使该publishProgress()要领从事变线程宣布,而且可以行使该onProgressUpdate(Progress...)要领在UI线程上更新。
  5. 最后,行使execute()UI线程中的要领挪用异步使命。

让我们进一步继承相识Volley:

  1. Volley运行一个缓存处理赏罚线程和一个收集分配线程池。
  2. 收集挪用哀求起首由缓存线程举办分类。假如相应可以从缓存中提供,则缓存的相应将被理会CacheDispatche并转达回主线程UI线程。
  3. 假如功效在缓存中不行用,则必要举办收集哀求以获取所需数据,哀求将放入收集行列中。
  4. 第一个可用的收集线程(NetworkDispatcher)从行列中获取哀求,然后,它执行HTTP哀求,理会事变线程上的相应并将相应写入缓存。然后它将理会后的相应转达回主线程。

怎样优化Android异步哀求处事器数据?

​总结:

  • Android中的UI线程或主线程执行将变乱分配给UI器材包的事变,并认真将动静行列中的哀求出列以关照窗口小部件采纳操纵,这就是为什么UI线程始终长短阻塞的重要性。
  • Android有本身的HTTP客户端库,譬喻HttpURLConnection它可以辅佐您执行同步收集挪用。为了保持主线程不阻塞,必要在靠山运行的事变线程中执行收集挪用。
  • Android的AsyncTask库可以辅佐在靠山运利用命,并确保主线程长短阻塞的。它还确保靠山使命不直接更新UI,相反,它将功效返回到UI线程。
  • AsyncTask有其范围性,譬喻无法缓存相应而无法处理赏罚并行哀求,当靠山使命运行时,它也不能正常处理赏罚屏幕旋转等场景。
  • 行使Volley举办异步收集挪用是开拓Android应用措施的更简捷的办理方案,Volley拥有一系列强盛的成果,譬喻缓存,哀求打消和优先级排序。
  • Volley可以处理赏罚多种哀求范例,譬喻JSON,图像和文本,而且它比AsyncTask示意更好。

【编辑保举】

  1. 在数据中心调查的四个要害Kubernetes增添向量
  2. 详解X86处事器假造化的资源分别和机能优化
  3. Python监控处事器实现邮件微信报警
  4. Go说话中处理赏罚 HTTP 处事器
  5. [应用处事器]把握Tomcat应用处事器只需一分钟
【责任编辑:武晓燕 TEL:(010)68476606】

点赞 0

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读