安卓绑定本地服务和远程服务
来源:互联网 发布:淘宝充值话费待发货 编辑:程序博客网 时间:2024/05/18 14:27
远程服务:调用者和服务在不同的工程代码里面。
本地服务:调用者和服务在同一个工程代码里面。
每一个应用程序都是运行在自己独立的进程里面的。
进程是操作系统分配内存空间的一个单位。进程的数据都是独立的。独立的内存空间。要想进行数据共享,可以采用进程间通信方式。
aidl:android interface definition language 安卓接口定义语言
aidl文件都是公有的,没有访问权限修饰符
IPC: inter process communication 进程间通讯
绑定本地服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
private class MiddlePerson extends Binder implements IMiddlePerson{}
2.实现服务的onbind方法,返回的就是中间人 MiddlePerson
3.在activity 绑定服务。bindService();
4.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
5.强制类型转化 调用接口里面的方法。
绑定远程服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
2.把暴露的接口文件的扩展名改为aidl文件 去掉访问修饰符 public
4.在activity 绑定服务。bindService();
5.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
本地服务:调用者和服务在同一个工程代码里面。
每一个应用程序都是运行在自己独立的进程里面的。
进程是操作系统分配内存空间的一个单位。进程的数据都是独立的。独立的内存空间。要想进行数据共享,可以采用进程间通信方式。
aidl:android interface definition language 安卓接口定义语言
aidl文件都是公有的,没有访问权限修饰符
IPC: inter process communication 进程间通讯
绑定本地服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
private class MiddlePerson extends Binder implements IMiddlePerson{}
2.实现服务的onbind方法,返回的就是中间人 MiddlePerson
3.在activity 绑定服务。bindService();
4.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
5.强制类型转化 调用接口里面的方法。
绑定远程服务调用方法的步骤:
1.在服务的内部创建一个内部类 提供一个方法,可以间接调用服务的方法
2.把暴露的接口文件的扩展名改为aidl文件 去掉访问修饰符 public
private class MiddlePerson extends IMiddlePerson.Stub{}
Stub是 IPC的子类
3.实现服务的onbind方法,返回的就是中间人 IMiddlePerson4.在activity 绑定服务。bindService();
5.在服务成功绑定的时候 会执行一个方法 onServiceConnected 传递过来一个 IBinder对象
6.IMiddlePerson.Stub.asInterface(binder) 调用接口里面的方法。
混合调用的服务的生命周期:
又想服务长期后台运行,又想调用服务的方法:
1.start方式开启服务(保证服务长期后台运行)
2.bind方式绑定服务(保证调用服务的方法)
3.unbind方式解除绑定服务
4.stopService停止服务
两种方式同时运用,在activity创建的时候start方式开启服务,在点击事件里面用bind方式绑定服务。
绑定服务属于异步操作,可能会有时间的延时,如果绑定之后立即调用onServiceConnected方法,可能会出现空指针异常,所以应该在activity创建的时候就绑定服务或者在获得连接对象之后再调用上述方法。
遇到的问题
创建了一个AIDL文件,这个时候发现gen目录下自动生成的java文件报错了,内容是里面的一些方法要去掉override,但是去掉之后还是报错,所以我想应该不是要去掉override。。试着把properities->java compiler里面的JDK版本从1.5改成了1.6 ,居然真的可以了!
0 0
- 安卓绑定本地服务和远程服务
- 安卓 本地服务和远程服务
- Androd绑定本地服务和绑定远程服务
- 安卓 Service和绑定服务
- 安卓绑定本地服务Service并与之通信
- android本地服务和远程服务
- 本地服务和远程服务AIDL
- 绑定服务&绑定远程服务
- Android中的本地服务、远程服务和系统服务
- Service绑定本地服务
- 本地绑定服务
- Android远程服务绑定
- 绑定远程服务
- 远程服务的绑定
- android 绑定远程服务
- AIDL绑定远程服务
- aidl绑定远程服务
- 本地及远程服务
- 27. Remove Element Leetcode Python
- HttpServletRequestWrapper 用法
- Font Rendering: Gecko vs Chrome
- 冒泡排序
- erlang 实现geohash算法
- 安卓绑定本地服务和远程服务
- 关于monkey大致信息收集
- MFC 文档view视图中根据鼠标指定的某个区域控制延迟显示tip的方法(原创)
- WMS仓库管理系统---(4)分类管理模块
- 单链表的建立和增删改查代码及讲解
- 求该整数的二进制表达中有多少个1
- android编译笔记
- 贝叶斯==
- 灰度图像--图像增强 双边滤波 Bilateral Filtering