服务端:

首先是编写一个aidl文件,注意AIDL只支持方法,不能定义静态成员,并且方法也不能有类似public等的修饰符;AIDL运行方法有任何类型的参数和返回值,在java的类型中,以下的类型使用时不需要导入包(import),基本数据类型、String、Map、List.当然为了避免出错,建议只要使用了,就导入包。

然后在服务端启动一个服务并注册,编写一个任意类实现AIDL文件生成的JAVA接口Stub!

最后在service里面实例化你的任意类并且在onBind(Intent a)方法上面返回你任意类的对象!

客户端:

首先把你在服务端的aidl文件完整的复制过来一份,并且保证包名一样

然后调用bindservice方法绑定你在服务端创建的方法mContext.bindService(intent, mServiceConnection, 0);

其中mServiceConnection是重点:

private ServiceConnection mServiceConnection = new ServiceConnection() {

@Override
public void onServiceConnected(ComponentName name, IBinder service) {//连接上服务器时调用
mService = IRemoteService.Stub.asInterface(service);

}

@Override
public void onServiceDisconnected(ComponentName name) {//没连上调用
mService = null;
}
};

其中mService就是服务端的aidl对象,我们可以通过它来给服务端的方法赋值

其中的传的Intent要注意必须提供一个intent-filter来匹配请求是否合法,所以我们在客户端访问服务的时候,还必须传递包含了匹配action的Intent哦。

最新文章

  1. linux中offsetof与container_of宏定义
  2. awk(2)-模式(pattern)
  3. treeview子节点文本过长超过DIV自动换行CSS解决
  4. HUST 4681 String (DP LCS变形)
  5. 从创建webservice到发布webservice的一些相关总结
  6. Spring事务管理中@Transactional的propagation参数
  7. HashMap HashTable HashSet区别剖析
  8. Knockout简单用法
  9. (简单) POJ 1278 Catch That Cow,回溯。
  10. angular JS中使用jquery datatable添加checkbox点击事件
  11. python 时间段的随机日期输出
  12. 三、文件IO——系统调用(续)
  13. Codeforces 570E - Pig and Palindromes - [滚动优化DP]
  14. HTML 点击图片放大
  15. 你了解大O符号(big-O notation)么?你能给出不同数据结构的例子么?
  16. 【LGR-054】洛谷10月月赛II
  17. phper必知必会(二)
  18. Lightoj 1003 - Drunk(拓扑排序判断是否有环 Map离散化)
  19. 判断是手机端还是电脑端 isMobile()
  20. Net 服务命令行参考之一

热门文章

  1. JWT(Json web token)简介
  2. iReport 5.6.0 启动闪退的问题 解决方案
  3. Spring实战拆书--SpringBean
  4. 使用 WRK 压力测试工具对 ASP.NET Core 的接口进行压力测试
  5. 【python】re库 正则的一些过滤和把str拆分成list案例 以及json dict类型
  6. Java-jsoup-解析HTML
  7. leetcode — text-justification
  8. Elasticsearch 学习总结 - 相关配置补充说明
  9. Yaml 文件中Condition If- else 判断的问题
  10. mysql数据库中的数据导入与导出