当前位置: 网学 > 编程文档 > Android > 正文

android Service Binder交互通信实例

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/19
下载{$ArticleTitle}原创论文样式
;);    }}     配置文件AndroidManifest.xml和上面的类似,没有区别。 在Activity中使用服务的差别不大,只需要对ServiceConnection中的调用远程服务的方法时,要捕获异常。 private ServiceConnection serviceConnection = new ServiceConnection() {     @Override    public void onServiceConnected(ComponentName name, IBinder service) {        countService = (ICountService) service;        try {            Log.v("CountService", "on serivce connected, count is "                    + countService.getCount());        } catch (RemoteException e) {            throw new RuntimeException(e);        }    }     @Override    public void onServiceDisconnected(ComponentName name) {        countService = null;    } };    这样就可以在同一个应用程序中使用远程服务的方式和自己定义的服务交互了。 如果是另外的应用程序使用远程服务,需要做的是复制上面的aidl文件和相应的包构到应用程序中,其他调用等都一样。 编写传递复杂数据类型的远程服务远程服务往往不只是传递java基本数据类型。这时需要注意android的一些限制和规定: 1.android支持String和CharSequence 2.如果需要在aidl中使用其他aidl接口类型,需要import,即使是在相同包结构下; 3.android允许传递实现Parcelable接口的类,需要import; 4.android支持集合接口类型List和Map,但是有一些限制,元素必须是基本型或者上述三种情况,不需要import集合接口类,但是需要对元素涉及到的类型import; 5.非基本数据类型,也不是String和CharSequence类型的,需要有方向指示,包括in、out和inout,in表示由客户端设置,out表示由服务端设置,inout是两者均可设置。 这里将前面的例子中返回的int数据改为复杂数据类型: package com.easymorse; import android.os.Parcel;import android.os.Parcelable; public class CountBean implements Parcelable {     public static final Parcelable.Creator<CountBean> CREATOR = new Creator<CountBean>() {         @Override        public CountBean createFromParcel(Parcel source) {            CountBean bean = new CountBean();            bean.count = source.readInt();            return bean;        }         @Override        public CountBean newArray(int size) {            return new CountBean[size];        }     };     public int count;     @Override    public void writeToParcel(Parcel

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号