- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
*核心组件具体应用--Service特点:Service是一段没有用户界面,在后台运行的程序。Service可以运行在它自己的进程,也可以运行在其他应用程序的上下文context里面,这取决于自身的需要。其他的组件可以绑定到一个服务Service上面,通过远程过程调用(RPC)来调用这个方法例:从播放列表中播放歌曲的媒体播放器*核心组件具体应用--Service服务应用:可使用Context.startService()来启动一个Service,从而在后台运行程序。系统将保持这个Service,直到运行结束。调用Context.stoptService()结束,或者Service调用stopSelf()停止。startService()可以传递参数给Service。通过使用Context.bindService()方法,连接到一个Service上(如果这个service还没有运行将启动它)。调用Context.unbindService()结束。当连接到一个Service之后,我们还可以通过Service提供的接口与它进行通讯。通过ServiceConnection访问Service。二者可以混合使用,比如先startServece()再unbindService()。*Android应用开发--大纲Android核心组件介绍核心组件具体应用Android线程间的通信*Android线程间的通信线程间的通信概述每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread)主线程负责处理和UI相关的事件,因此主线程通常又叫UI线程而由于Android采用UI单线程模型,所以只能在主线程中对UI元素进行操作。如果在非UI线程直接对UI进行了操作,则会报错:CalledFromWrongThreadException:onlytheoriginalthreadthatcreatedaviewhierarchycantouchitsviews*Android线程间的通信Android为我们提供了消息循环的机制,我们可以利用这个机制来实现线程间的通信。这样我们就可以在非UI线程发送消息到UI线程,最终让UI线程来进行UI的操作对于运算量较大的操作和IO操作,我们需要新开线程来处理这些繁重的工作,以免阻塞UI线程Android消息循环的机制主要通过以下两种方式通过Thread+Handler实现通过AsyncTask实现*Android线程间的通信Thread+Handler实现?Handler为Android操作系统中的线程通信工具,包为android.os.Handler定义一个Handler对象要绑定到一个线程的消息循环队列,然后就可以进行消息的收发UI线程在创建的时候就建立了消息循环(在ActivityThread的publicstaticfinalvoidmain(String[]args)方法中实现),因此我们可以在其他线程通过handler给UI线程的handler发送消息,达到更新UI的目的。*Android线程间的通信Hanlder使用方法:new?Handler() 会将此handler绑定到当前线程消息循环队列newHandler(Looperlooper) 绑定到指定的消息循环队列sendMessage(Messagemsg) 用来发送消息handleMessage?(Message?msg) 重写Hanlder类中的此方法来处理收到的消息*Android线程间的通信Handler发送的消息MessageMessage是线程之间传递信息的载体包含了对消息的描述和任意的数据对象Message中包含了两个额外的int字段和一个object字段,这样在大部分情况下,使用者就不需要再做内存分配工作了。虽然Message的构造函数是public的,但是最好是使用Message.obtain()或Handler.obtainMessage()函数来获取Message对象,因为Message的实现中包含了回收再利用的机制,可以提供效率。*Android线程间的通信自定义线程中的消息循环线程本身是没有消息循环,使用的话需要手动启动,步骤如下:Looper.prepare(); 初始化当前线程的Looper??Looper.loop(); 启动消息循环Looper是用来封装消息循环和消息队列的类注:以上方法在需要创建消息循环的线程中执行*
您可能关注的文档
- 武汉石化新建10.4万吨年裂解气制醋酸乙烯项目VAC环境评价报告(03版).doc
- 武汉阳逻石化 20 万吨 年硫磺回收装置及系统配套项目设计摘要.pdf
- 武汉阳逻石化 20 万吨年硫磺回收装置及系统配套项目 设备选型与典型设备设计.pdf
- 武汉阳逻石化 20 万吨年硫磺回收装置及系统配套项目·环境影响报告书.pdf
- 武汉阳逻石化20万吨硫磺回收装置及系统配套项目 安全性预评价.docx
- 武汉阳逻石化20万吨硫磺回收装置及系统配套项目 初步设计说明书.docx
- 武汉阳逻石化20万吨硫磺回收装置及系统配套项目 创新性说明.doc
- 武汉阳逻石化20万吨硫磺回收装置及系统配套项目 环境影响报告书.doc
- 武汉阳逻石化20万吨硫磺回收装置及系统配套项目 项目可行性报告.docx
- 武汉阳逻石化20万吨年硫磺回收装置及系统配套项目初步设计说明书(8).pdf
最近下载
- 军队文职考试《公共科目》试题与参考答案(2024年).docx VIP
- 领导干部政治理论考试100题及答案.pdf
- 2024年10月 高等教育自学考试 真题 电工电子技术基础 04070.pdf VIP
- 22G101 三维彩色立体图集.docx
- DLT1227-2013 电能质量监测装置技术规范.docx VIP
- 中国铁路的发展历史——高铁(课件).pptx VIP
- 2025年郑州黄河护理职业学院单招职业技能测试题库及答案(历年真题).docx
- 高中历史:从万邦来朝到人类命运共同体——中国外交千年回望.pptx
- 《从合作原则角度分析美剧《破产姐妹》中的会话含义》.docx VIP
- 2024基于物联网技术的远程管控服务平台技术规范.pdf
文档评论(0)