欢迎来到天天文库
浏览记录
ID:46579159
大小:197.44 KB
页数:14页
时间:2019-11-25
《Android应用程序开发04》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Android应用开发培训——应用程序核心3刘兆宏liuzh@cqupt.edu.cnskype://macromliu2010Spring@CQUPT2010-5-5SIKOGISCenter1Content§Intent2§Service2010-5-5SIKOGISCenter2Intent2§Intent类别¢显式Intent§直接使用组件名称定义目标组件§多用于程序内部传递消息¢启动其它Activity¢启动Service¢隐式Intent§不明确指出目标组件名称§广泛应用于不同应用程序间通信§使用I
2、ntentFilter解析2010-5-5SIKOGISCenter3Intent2§IntentFilter¢定义在AndroidManifest.xml中¢指定了IntentFilter,可以相应显式、隐式Intent请求¢以Action,Data,Category三个因素为选择参考标准2010-5-5SIKOGISCenter4IntentFilter§IntentFilter¢Data3、=“http”…/>¢URI:scheme,authority+path2010-5-5SIKOGISCenter5TinyDialerSample2010-5-5SIKOGISCenter6TinySMSSample2010-5-5SIKOGISCenter7TinySMSSample2010-5-5SIKOGISCenter8使用Service§什么是服务(servi
3、=“http”…/>
4、ce)§如何使用服务§使用服务进行音乐播放2010-5-5SIKOGISCenter9Service§服务是运行在后台的一段代码。§它可以运行在它自己的进程,也可以运行在其他应用程序进程的上下文(context)里面,这取决于自身的需要。§其它的组件可以绑定到一个服务(Service)上面,通过远程过程调用(RPC)来调用这个方法。§例如媒体播放器的服务,当用户退出媒体选择用户界面,仍然希望音乐依然可以继续播放,这时就是由服务(service)来保证当用户界面关闭时音乐继续播放的。2010-5-5SIKOGIS
5、Center10如何使用Service§第一种是通过调用Context.startService()启动,调用Context.stopService()结束,startService()可以传递参数给Service。§第二种方式是通过调用Context.bindService()启动,调用Context.unbindservice()结束,还可以通过ServiceConnection访问Service。二者可以混合使用,比如说我可以先startService再bindservice。2010-5-5SIKOGI
6、SCenter11Service的生命周期§startService后,即使调用startService的进程结束了Service仍然还存在,直到有进程调用stopService,或者Service自己自杀(stopSelf())就没法了§bindService后,Service就和调用bindService的进程同生共死了,也就是说当调用bindService的进程死了,那么它bind的Service也要跟着被结束,当然期间也可以调用unbindservice让Service结束。§两种方式混合使用时,比如说
7、你startService了,我bindService了,那么只有你stopService了而且我也unbindservice了,这个Service才会被结束。2010-5-5SIKOGISCenter12进程生命周期§Android系统将会尝试保留那些启动了的或者是绑定了服务的进程§如果该服务正在进程的onCreate(),onStart(),或者onDestroy()这些方法中执行时,那么主进程将会成为一个前台进程,以确保此代码不会被停止§如果服务已经开始,那么它的主进程会就重要性而言低于所有可见的进程但高
8、于不可见的进程,由于只有少数几个进程是用户可见的,所以只要不是内存特别低,该服务不会停止.§如果有多个客户端绑定了服务,只要客户端中的一个对于用户是可见的,即认为该服务可见2010-5-5SIKOGISCenter13Exercise§通讯录(2)¢在上次基础上,按拨号键盘,调用拨号程序¢通过ContextMenu,发送短消息2010-5-5SIKOGISCenter14
此文档下载收益归作者所有