新闻动态

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

发布日期:2021-01-02 10:45 | 文章来源:YINGSOO

  【温馨提醒】文章内容仅供参考,海外服务器租用\托管方案,请咨询YINGSOO客服,24小时免费电话400-630-3752

  【热门主机】美国服务器 价格美国云服务器价格日本vps价格台湾vps价格

  【热搜问题】国外的服务器租用多少钱一年合适?

Android

  在互联网驱动的世界中,移动应用程序需要共享和接收来自其产品的后端(例如,来自数据库)以及来自第三方来源(如Facebook和twitter)的信息,这些交互通常通过Restful Api进行。当请求数量增加时,这些请求的生成方式对于开发变得非常关键,因为获取数据的方式确实会影响应用程序的用户体验。

  同步请求的行为在服务器响应之前保持空闲状态,同步请求会阻止接口增加计算时间并使移动应用程序无响应。于是就异步请求出现,当客户端向服务器发出请求时,服务器将请求分派给事件处理程序,注册回调并继续执行下一个请求,当响应可用时,将使用结果响应客户端。这是一种更好的方法,因为异步请求允许独立执行任务。

  上图显示了两种编程方法在客户端 - 服务器模型中的不同之处。在Android中,Ui线程(通常称为主线程)是基于与异步编程相同的原理。

  Android Ui工具包不是线程安全的,如果工作线程(执行进行网络调用的任务)更新Android Ui工具包,则可能导致未定义和意外的行为,追踪这可能是困难且耗时的。单线程模型确保Ui不会同时被不同的线程修改,因此,如果我们使用来自网络的图像更新imageView,则工作线程将在单独的线程中执行网络操作,而imageView将由Ui线程更新,这可确保操作是线程安全的。Ui线程提供必要的同步,它还有助于Ui线程始终是非阻塞的,因为实际任务在工作线程的后台发生的。

  总之,请遵循Android开发中的两个简单规则:

  不应阻止Ui线程。

  不应从非Ui工作线程直接更新Ui工具包。

  在Android应用如果您需要在用户与应用程序交互时在主线程之外执行工作,最好使用Asynctask或Volley等网络库。

  以下是使用Asynctask实现异步工作线程的方法:

  subclass Asynctask实现该onpreexecute()方法,它将创建一个toast消息,表明网络调用即将发生。

  实施doinbackground(params...)方法,顾名思义,doinbackground是工作线程进行网络调用并保持主线程免费。

  由于工作线程无法直接更新Ui,因此我实现了自己的postexecute(Result)方法,该方法将从网络调用中提供结果并在Ui线程中运行,以便可以安全地修改用户界面。

  后台任务的进度可以使用该publishprogress()方法从工作线程发布,并且可以使用该onprogressUpdate(progress...)方法在Ui线程上更新。

  最后,使用execute()Ui线程中的方法调用异步任务。

  让我们进一步继续了解Volley:

  Volley运行一个缓存处理线程和一个网络分派线程池。

  网络调用请求首先由缓存线程进行分类。如果响应可以从缓存中提供,则缓存的响应将被解析cachedispatche并传递回主线程Ui线程。

  如果结果在缓存中不可用,则需要进行网络请求以获取所需数据,请求将放入网络队列中。

[高防服务器托管]   第一个可用的网络线程(networkdispatcher)从队列中获取请求,然后,它执行Http请求,解析工作线程上的响应并将响应写入缓存。然后它将解析后的响应传递回主线程。

  总结:

  Android中的Ui线程或主线程执行将事件分派给Ui工具包的工作,并负责将消息队列中的请求出列以通知窗口小部件采取操作,这就是为什么Ui线程始终是非阻塞的重要性。

  Android有自己的Http客户端库,例如HttpURLconnection它可以帮助您执行同步网络调用。为了保持主线程不阻塞,需要在后台运行的工作线程中执行网络调用。

  Android的Asynctask库可以帮助在后台运行任务,并确保主线程是非阻塞的。它还确保后台任务不直接更新Ui,相反,它将结果返回到Ui线程。

  Asynctask有其局限性,例如无法缓存响应而无法处理并行请求,当后台任务运行时,它也不能正常处理屏幕旋转等场景。

  使用Volley进行异步网络调用是开发Android应用程序的更简洁的解决方案,Volley拥有一系列强大的功能,例如缓存,请求取消和优先级排序。

  Volley可以处理多种请求类型,例如Json,图像和文本,并且它比Asynctask表现更好。

  本公司是国内屈指可数的拥有多处海外自建机房的新型idc服务商,被业界公认为“中国idc行业首选品牌”。本公司与全球近120多个国家顶级机房直接合作,除提供传统的idc产[日本直连服务器]品外,本公司的主要职责是为大中型企业提供更精细、安全、满足个性需求的定制化大数据解决方案,特别是在直销、金融、视频、流媒体、游戏、电子商务、区块链、快消等诸多行业,为广大客户解决海外服务器租用中遇到的各种问题。

  

  香港高防服务器防御DDOS好么

  无论是什么行业的站点在遇到黑客攻击还是DDOS攻击时,都会出现服务器访问延时,或无法正常被访问的情况。在预防攻击上,我们首先需要做到的一点,就是需要租用一台性能好的高防服务器。如果是游戏行业的话,租用香港高防服务器是否合适呢?

  一、香港高防防御性能好

  香港的高防应用在游戏上一直都是比较好的,使用香港高防运营游戏,游戏运行期间的稳定性一直都是很好的。根据用户的需求,在防御上还可以根据用户业务的实际情况来定制相应的防御策略。

  二、香[香港服务器租赁不可不知道的4问题]港高防带宽资源充足

  随着游戏的推广力度的增加,游戏的玩家数量会不断的增加,所以游戏服务器对于带宽上的需求会不断增加,一般中大型的游戏,都是使用的大带宽的配置,一般的小带宽是无法带动游戏的。在带宽资源上,香港机房的资源还是比较丰富的,可以满足游戏从上线到后续运营的大带宽需求,并且在价格上也是比较合理的。

  三、免备案

  虽然香港是紧挨大陆的,但是在服务器的使用管理制度上却是不一样的,国内使用服[香港服务器在哪家买比较好]务器是必须要做好备案工作的,走完整个备案流程,才能将项目上线。流程差不多至少需要半个月左右,如果期间因为审核上有不合格的地方,需要修改后,在走流程。整个流程下来是比较费时间的。相对于大陆而言,香港服务器在使用上就没有那么麻烦了。是可以无需备案,就能使用的。

  7x24小时在线客服QQ:1708453677、1708453677、1708453677、1708453677、1708453677、1708453677

  热门文章:【网站服务器托管】【裸金属裸金属云】【ping服务器】【香港服务器美国服务器】【怎样用福州高防服务器搭建游戏网站】【香港服务器可以放违法网站吗】【云服务器永久免费】【免备案云主机哪家好】【隐藏真实ip的美国屌丝服务器好吗】【服务器安全】【哪里有免费云服务器】【勒索病毒】【嘉兴服务器】【高防集群服务器问题一站式解答】【选择独立服务器托管网站的10个理由】【在线视频服务器租用】【美国站群服务器选择注意事项】【韩国独立服务器配置如何进行选择】【香港高速稳定服务器选择标准】【VPC专有网络】【便宜香港服务器费用】【海外服务器下载代理】【1100G硬件防火墙】【流量攻击服务器】【云服务器安全的7条安全提示】【传奇服务器租赁】【2018你的外贸美国服务器如何选】【bgp多线是什么意思】【DDOS高防网络】【游戏端

  YINGSOO美国高速主机租用3天免费试用. 海外云主机品牌

  好网络,不怕晒!美国高速主机租用免费试用,自主平台更可靠,海外云服务品牌2019年度美国高速主机租用销量再度破表,超过1200家企业共同的选择

  https://www.yingsoo.com/products/cloud-us.html

  韩国主机 cn2,选知名品牌YINGSOO

  9年韩国主机 cn2业务运营经验,1200家企业客户共同选择.韩国Korea Telecom机房核心合作伙伴,机房带宽资源充足,到国内速度平均在80ms左右.

  https://www.yingsoo.com/products/cloud-kr.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部