实验八 线程与消息处理.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 第 PAGE 2 页 共 NUMPAGES 2 页 实验八 线程与消息处理 1. 实验目的 掌握Android多线程程序设计方法。 实验内容 (1)阅读和理解各代码段; (2)上机实现例7.1~7.6。 实验要求 (1)掌握线程的创建和线程通信的消息传递机制。 (2)掌握使用AsncTask实现线程通信的方法。 实验步骤 (1)上机实验例7.1 1)新建项目Demo07_01,选择空白模板。 2)程序中创建一个计时器线程,并通过LogCat窗口输出计时结果,程序代码如图8-1,程序界面设置两个按钮,分别用于暂停计时和继续计时,程序代码如图8-2。 图8-1 图8-2 3)运行及查看结果 点击“继续计时”后点击“暂停计时”,LogCat窗口的信息如图8-3。再点击“继续计时”,程序退出。 图8-3 (2)上机实验例7.2 1)新建项目Demo07_02,选择空白模板。 2)使用相对布局,在主界面添加两个按钮,两个TextView,如图8-4。 图8-4 2)创建一个计时器线程,将计时结果显示在调用的TextView对象上,代码如图8-5,选择View.post(Runnable)方法从非UI线程访问Android UI toolkit,使得计时操作在独立线程中完成,UI线程对TextView进行操作。 3)运行及查看结果。点击按钮“继续计时”后的显示结果如图8-6。 图8-5 图8-6 (3)上机实验例7.3 1)新建项目Demo07_03,选择空白模板。 2)参考教材完成代码,演示线程间的消息机制,如图8-7。 图8-7 3)运行及查看结果。运行结果如图8-8。 图8-8 4)分析与小结:一个Handler对象可以处理多个发送过来的消息,通过Message中的what属性值来区分哪个线程发送过来的消息。 UI操作通常会通过投递消息来实现,只有往正确的Looper投递消息才能得到处理,对于UI来说,这个Looper一定是运行在UI线程中的。所有的UI线程都是具有Looper的,所有控件基类的View提供了post方法,用于向UI线程发送消息,并在UI线程的Looper中处理这些消息。 (4)上机实现例7.4 1)新建项目Demo07_04,选择空白模板。 2)参考教材完善代码,在主线程中创建Hander,通过构造函数传递给线程类。其中Mainactivity.java的代码如图8-9,子线程Thread1的代码如图8-10. 图8-9 图8-10 3)运行及查看结果,Logcagt的部分显示结果如图8-11. 图8-11 (5)上机实现例7.5 1)新建项目Demo07_05,选择空白模板。 2)因为需要访问网络,在AndroidManifest.xml中添加网络访问的权限: uses-permission android:name=android.permission.INTERNET/ 3)MainActivity的布局代码如图8-12,包含一个下载按钮和ImageView控件。Java源代码如图8-13和图8-14,其中mHundle是主线程也就是UI线程处理消息的Hundler对象;在程序中定义了一个静态方法loadImageFromUrl( ),实现网络下载图片。 4)运行及查看结果。Logcat窗口的输出部分结果如图8-15,模拟机的运行结果如图8-16. 5)分析与小结:点击按钮之后,创建一个匿名线程,并调用其start( )方法启动该线程,在这个线程中进行图片下载并解码成Bitmap格式,然后通过Handler向UI线程发送消息以通知下载结果。UI线程收到消息之后,会分发给Hundler,在它的handlerMessage( )方法中根据消息的ID来处理下载结果,并更新UI界面。 图8-12 图8-13 图8-14 图8-15 图8-16 (6)上机实现例7.6 1)新建项目Demo07_06,选择空白模板。 2)添加网络访问的权限,MainAcitivityd内容同Demo07_05,,Java源代码如图8-17,8-18,8-19。 图8-17 图8-18 图8-19 3)运行及查看结果。模拟机的运行结果如图8-20。 图8-20

文档评论(0)

有志者事竟成 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7114163151000053

1亿VIP精品文档

相关文档