下载此文档

Android环境下主UI线程与子线程通信机制研究.doc


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
Android环境下主UI线程与子线程通信机制研究.docAndroid环境下主UI线程与子线程通信机制研究
1问题的引出
如果需要用从X络上下载一个图片到自己的上,在onCreate方法中可以如下图1所示的代码。通过代码会获取并显示所需要的位图。但其中隐藏着一个非常危险的问题——代码本身就是运行在主线程上。Android系统只能运行一个主线程,而且只有主线程能够与屏幕之间进行任意权限级别的交互。这意味着,当代码等待X络回传图片数据的时候,任何内容都无法显示到屏幕上。这段获取图片的代码会限制在上任意地方执行任意操作。所以如果主线程被绑架,那么它在被释放之前,系统就不会响应按单击事件,不能接,屏幕上不能显示任何内容。这对于用户来说是灾难性的。
2什么是子线程
为了有效解决被绑架的问题,提高用户体验,提出了子线程。在Android的布局界面中,可以实现按钮的单击、TextViesg)方法,该方法会在Handler对象接收到消息时被调用。那么这三个类之间协同合作,才能有序地完成子线程与主UI线程之间的通信。

要创建子线程对象,就需要使用Thread类。要创建该类需要实现Runnable接口的抽象方法run(),在run()方法中需要添加子线程所要运行任务的代码。其次,Sleep(longtime)方法是让线程休眠,其中time为休眠的时间,单位时毫秒。最后一定要用start()方法运行线程。之后该子线程就可以开始工作了。
子线程在特定情况下需要通过Handler发送Message给主UI线程,委托主UI线程进行一些与界面相关的处理,所以,发送消息的Handler类也是其中的一个很重要的类。

Message类型的消息中包含了一个int类型的成员对象sg),其中,msg是消息对象。Message类型的消息中包含了一个int类型的成员对象sg),,消息队列里面用于存放消息。Looper对象用来为一个线程开启一个消息循环,用来操作消息队列。

Android环境下主UI线程与子线程通信机制研究 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人ttteee8
  • 文件大小48 KB
  • 时间2018-08-09
最近更新