- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章android组件之间的通信分析
6.6 Service 建立客户端: 1) 在客户端建立一个项目,注意客户端包名称不能和服务器端的包名称相同。 2)客户端也需要一个aidl文件,注意客户端的aidl文件的包名必须和服务器端的aidl包名一致,名字也相同,可将服务端中定义的aidl文件拷贝到客户端项目中,创建完后同样会在gen下生成一个接口。 3)创建一个Activity程序,实现其onServiceConnected和onServiceDisconnected方法,onServiceConnected方法生成第一步那个接口的实现类的对象,然后通过bindService方法绑定服务,得到aidl对象。 6.6 Service 实例6_7:AIDL服务操作实例 利用Service组件编程实现跨进程调用Service端的数据和方法。 6.6 Service 实例6_7:AIDL服务操作实例 利用Service组件编程实现跨进程调用Service端的数据和方法。 6.6 Service 6.6.6 Service系统服务 在Android操作系统中,为了方便用户使用系统服务,在android.content.Context类中将所有的系统服务名称以常量的形式进行了绑定,如表6-17所示。 6.6 Service 6.6.6 Service系统服务 系统服务实际上可以看作是一个对象,通过Activity类的getSystemService()方法可以获得指定的系统服务。getSystemservice()方法只有一个String类型的参数,表示系统服务的ID,这个ID在整个Android系统中是唯一的。获得服务后会返回一个指定类的对象,就可以利用这个类提供的方法做相应的操作了。例如: //获得音频服务 AudioManager AM=(AudioManager) getSystemService(Context.AUDIO_SERVICE); //获得最大铃音 int?max = AM.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL); //获得当前铃音 int?current= AM.getStreamVolume(AudioManager.STREAM_VOICE_CALL);…… 6.6 Service 实例6_8:取得手机网络信息操作实例 编程列出获得手机的网络信息。 首先打开模拟手机,单击右边的“Menu”按钮,?设置?关于手机?状态消息,如图6.31所示。运行该程序,结果如图6.32所示 6.7 BroadcastReceiver 广播是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver是对发送出来的广播进行过滤接收并响应的组件。BroadcastReceiver自身并不实现图形用户界面,当它收到某个通知后,BroadcastReceiver可以启动Activity作为响应,或者通过NotificationMananger提醒用户,或者启动Service等等。广播属于触发式操作,当有了指定操作之后会自动启动广播。 6.7 BroadcastReceiver 要实现一个BroadcastReceiver方法基本步骤如下: 1、继承BroadcastReceiver,并重写onReceive()方法,例如: public class MyBroadcastReceiver extends BroadcastReceiver { public MyBroadcastReceiver(){……} // 构造方法 public void onReceive(Context context, Intent intent) {……} }//重写onReceive() 在onReceive方法内,可以获取随广播而来的Intent中的数据,这里面可以包含很多有用的信息,这里是广播消息核心部分所在! 创建完BroadcastReceiver之后,还不能马上工作,还需要为它注册一个指定的广播地址。 2、为BroadcastReceiver注册广播地址。 注册有静态注册和动态注册两种方式。 3、利用sendBroadcast发送广播。 6.7 BroadcastReceiver 1)静态注册方式是在AndroidManifest.xml的application里面定义receiver并设置要接收的action。 receiver //定义广播处理 android:name=.MyBroadcastReceiv
文档评论(0)