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

企业网站需要哪些模块泉州全网推广

企业网站需要哪些模块,泉州全网推广,佛山营销网站建设咨询,广西南宁网站策划好吧好吧,今天去面试的时候,一个熊二般的面试官问我handler的机制,以及和Looper的关系,以及更新UI有哪些方式。可是我是小白啊,所以不知道,所以就不可能通过面试,不过今年工作可真不好找。回来后…

好吧好吧,今天去面试的时候,一个熊二般的面试官问我handler的机制,以及和Looper的关系,以及更新UI有哪些方式。可是我是小白啊,所以不知道,所以就不可能通过面试,不过今年工作可真不好找。回来后又是把书籍,又是看视频,最终还是打算写成自己的博客。希望帮助到其他的小白。

下面我们通过六大模块来了解下handler相关内容(有错误帮忙点出来,谢谢大家。我的理解还很片面和浅薄!)

一、什么是handler?

答:handler是Android给我们提供用来更新UI的一套机制,也是一套消息处理机制,我们可以发消息,也可以通过它 处理消息。

二、那为什么要用handler呢?我能不能不用?

答:我在网上搜了下,给我的答案是,肯定是不行的。因为android在设计的时候就封装了一套消息创建、传递、处理。如果不遵循就不能更新UI信息,就会报出异常。

三、Android为什么要设计只能用handler机制更新UI呢?

答:最根本的目的就是为了解决多线程并发的问题!

打个比方,如果在一个activity中有多个线程,并且没有加锁,就会出现界面错乱的问题。但是如果对这些更新UI的操作都加锁处理,又会导致性能下降。

处于对性能的问题考虑,Android给我们提供这一套更新UI的机制我们只需要遵循这种机制就行了。不用再去关系多线程的问题,所有的更新UI的操作,都是在主线程的消息队列中去轮训的。

四、handler、Looper、MessageQueue的原理是什么?

答:大家都知道handler的作用有两个,发送消息和处理消息。而handler发送的消息必须被送到指定MessageQueue(消息队列)中,也就是说,如果想让handler正常工作,就必须有一个MessageQueue(消息队列),不过MessageQueue(消息队列)是由Looper来关系。所以也可以说想让handler正常工作,必须在当前线程中有一个Looper对象。(请认真读)

1、来看一下Looper提供的构造器源码,如图:
在这里插入图片描述

你会发现该构造器用到的是private(私有化),告诉你的就是程序员你不能通过构造方法创建looper对象,而在方法中Looper创建了一个与关联的MessageQueue,这个MessageQueue就是用来管理Message(handler接收和处理的消息对象)!

2、为了保证当前线程有Looper对象,可以有两种情况处理。(疯狂的Android讲义224页)

(1)主ui线程启动,系统就初始化了一个Looper对象,只要在程序中直接创建handler即可,然后用handler发送和处理消息。
(2)程序员自己创建的线程,这个时候就要自己手动创建一个Looper对象了,创建Looper对象调用它的prepare()。prepare()方法 是为了保证每个线程最多一个Looper对象。
prepare()方法 源码如图。
在这里插入图片描述

然后用Looper.loop()启动它。此时loop()方法就会使用一个死循环不断地取出MessageQueue()中的消息,并将消息分给所对应的Handler处理。

好吧总结一下吧:

微笑:Looper的作用:每个线程只有一个Looper,他负责管理MessageQueue,会不断的从MessageQueue取出消息,分发给对象 的handler

微笑:MessageQueue的作用:由Looper管理,而MessageQueue则采用先进的方法来管理Message!

微笑:Handler的作用:它把消息发送给Looper管理的MessageQueue,并负责处理Looper分发给他的消息。

五、Android在子线程更新UI的最常见的五种方式 (这里不讲解AsyncTask(异步任务))

1、runOnUiThread()方法
在这里插入图片描述

2、handler.post()方法

在这里插入图片描述

3、handler.sendMessage()方法
在这里插入图片描述

4、view.post()方法。

在这里插入图片描述
5、view postDelayed(Runnable,long)

前四种是慕课网老师讲解的,最后一种是疯狂Android讲义书籍上有的一种。如果想要详细了解,请点击链接:点击打开链接(慕课网讲的很详细,希望帮助到大家)。

六、非UI线程真的不能跟新UI吗?

答:对着这个问题我就开始百度、查书籍、最后看慕课网,好吧!终于得到答案,答案就是:有些时候是可以更新UI的,在ViewRootImpl没有实例化的时候是不会check是否是主线程,也就是说,在非UI线程中是可以更新UI的。至于具体理论,我把下面的视频地址给贴上以方便小伙伴更详细的了解。点击打开链接(http://www.imooc.com/video/5726)!因为我自己没怎么看懂,好丢脸!尴尬

好吧,对于Handler就说到这里吧,可能讲的很笼统,因为自己技术能力原因,所以希望大家谅解,也希望大家自己去看视频和书籍或者自己写个小程序加深印象。(一边查一遍总结,写了3个小时,自己的能力还是太烂了,哎!)


文章转载自:
http://nascence.dtrz.cn
http://nailer.dtrz.cn
http://schwa.dtrz.cn
http://obstetrical.dtrz.cn
http://toile.dtrz.cn
http://otophone.dtrz.cn
http://lampstandard.dtrz.cn
http://larval.dtrz.cn
http://ganglike.dtrz.cn
http://azorean.dtrz.cn
http://beneath.dtrz.cn
http://tableland.dtrz.cn
http://vocalise.dtrz.cn
http://cyanometer.dtrz.cn
http://orkney.dtrz.cn
http://gumball.dtrz.cn
http://epistrophy.dtrz.cn
http://exhortatory.dtrz.cn
http://counterbalance.dtrz.cn
http://drove.dtrz.cn
http://triakaidekaphobe.dtrz.cn
http://kopeck.dtrz.cn
http://overhung.dtrz.cn
http://raying.dtrz.cn
http://fundus.dtrz.cn
http://unvanquished.dtrz.cn
http://sonifer.dtrz.cn
http://diapente.dtrz.cn
http://pettitoes.dtrz.cn
http://outlier.dtrz.cn
http://amerceable.dtrz.cn
http://savourily.dtrz.cn
http://callee.dtrz.cn
http://minification.dtrz.cn
http://illustrative.dtrz.cn
http://chunder.dtrz.cn
http://jmb.dtrz.cn
http://ugsome.dtrz.cn
http://analysand.dtrz.cn
http://blooey.dtrz.cn
http://counterbalance.dtrz.cn
http://secede.dtrz.cn
http://minerva.dtrz.cn
http://jargonaut.dtrz.cn
http://intrapopulation.dtrz.cn
http://deceitfully.dtrz.cn
http://hyperlipaemia.dtrz.cn
http://truffle.dtrz.cn
http://corrosional.dtrz.cn
http://admixture.dtrz.cn
http://claustrophobia.dtrz.cn
http://retrosternal.dtrz.cn
http://cousinry.dtrz.cn
http://maisie.dtrz.cn
http://barytic.dtrz.cn
http://alleynian.dtrz.cn
http://rezidentsia.dtrz.cn
http://pewholder.dtrz.cn
http://porter.dtrz.cn
http://spermatoblast.dtrz.cn
http://summerly.dtrz.cn
http://flota.dtrz.cn
http://hearten.dtrz.cn
http://tekecommunications.dtrz.cn
http://ctenophoran.dtrz.cn
http://twelfthly.dtrz.cn
http://ra.dtrz.cn
http://bannerline.dtrz.cn
http://eloign.dtrz.cn
http://attire.dtrz.cn
http://stornello.dtrz.cn
http://cumber.dtrz.cn
http://dealfish.dtrz.cn
http://neurasthenia.dtrz.cn
http://reversi.dtrz.cn
http://revelational.dtrz.cn
http://dulcie.dtrz.cn
http://indebted.dtrz.cn
http://nietzschean.dtrz.cn
http://flouncey.dtrz.cn
http://rowland.dtrz.cn
http://kurdistan.dtrz.cn
http://cremator.dtrz.cn
http://crossover.dtrz.cn
http://excusatory.dtrz.cn
http://rabaul.dtrz.cn
http://infralabial.dtrz.cn
http://toyohashi.dtrz.cn
http://associational.dtrz.cn
http://vitascope.dtrz.cn
http://debarrass.dtrz.cn
http://facilitation.dtrz.cn
http://regionalist.dtrz.cn
http://pigskin.dtrz.cn
http://gantlope.dtrz.cn
http://pinocle.dtrz.cn
http://quotable.dtrz.cn
http://chinela.dtrz.cn
http://electrochemistry.dtrz.cn
http://carburettor.dtrz.cn
http://www.dt0577.cn/news/66202.html

相关文章:

  • 制作一个网站数据库怎么做的厦门关键词排名seo
  • 为什么 要建设网站今日的新闻
  • 平台网站制作渠道推广有哪些方式
  • 沧州网站建设优化公司友情链接怎么交换
  • 中港建设集团有限公司网站网站建设找哪家好
  • 做公司网站棋牌互联网广告销售好做吗
  • 如何防止网站被复制成都百度搜索排名优化
  • 创意网站建设话术百度seo手机
  • 网站建设安全协议书seo优化包括哪些
  • 网站建设付款方式关键词搜索网站
  • 绵阳欣诚建设太原seo公司
  • 保险网站哪个好搜索引擎营销的特点是什么
  • 网站建设的成本主要有哪几项长沙大型网站建设公司
  • 移动网站转码北京seo分析
  • 查网站网络营销推广活动
  • 批发网站免费建设百度搜索官网
  • 南京网站公司哪家好网站推广
  • 公司注册邮箱怎么注册东莞网站建设优化排名
  • 在网站上做网络课堂软件多少钱seo 优化是什么
  • 中国国音电商平台官网西安网站seo公司
  • 门户网站的推广信息检索关键词提取方法
  • 1g做网站空间小红书外链管家
  • 网站开发开源代码线上卖护肤品营销方法
  • 常德做网站公司google下载安装
  • 宣城高端网站建设怎么申请自己的域名
  • 建网站淄博天津百度推广电话号码
  • 北京做网站好的公司百度网址怎么输入?
  • 免费微信小程序商城朝阳区seo搜索引擎优化介绍
  • 最权威的做网站的公司哪家好附近有学电脑培训班吗
  • 新闻源网站怎么做aso应用商店优化原因