Android学习笔记--AIDL
来源:互联网 发布:安卓鼓机软件loopz 编辑:程序博客网 时间:2024/05/01 00:33
AIDL一般用于跨进程通讯,和Service相关。服务端提供一个Service来处理客户端连接。首先写一个远程服务工程,创建一个远程服务类,定义一个接口,使Service的中间人对象Binder继承接口,实现接口的方法并在该方法中调用Service中的方法。
interface Iservice { void callMethod();}
public class MyService extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return new MyBinder(); } public void method() { System.out.println("我是其他进程的方法"); } private class MyBinder extends Stub { @Override public void callMethod() throws RemoteException { method(); } }}
在本地工程中导入远程服务的AIDL文件,通过远程服务Service在清单文件中配置的action来关联远程服务,并且拿到传递过来的接口对象(中间人对象)。通过接口对象就可以调用远程服务里的方法。
public class MainActivity extends Activity { private Iservice iservice; private MyConn conn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Intent service = new Intent(); service.setAction("com.itheima.service"); conn = new MyConn(); bindService(service, conn, BIND_AUTO_CREATE); } @Override protected void onDestroy() { unbindService(conn); super.onDestroy(); } public void click(View v) { System.out.println("我是自己进程的方法"); try { iservice.callMethod(); } catch (RemoteException e) { // TODO Auto-generated catch block e.printStackTrace(); } } class MyConn implements ServiceConnection { @Override public void onServiceConnected(ComponentName name, IBinder service) { iservice = Stub.asInterface(service); } @Override public void onServiceDisconnected(ComponentName name) { } }}
注意:记得在本地工程销毁时解绑服务,远程服务中的方法必须是public,不然不能直接调用该方法。
0 0
- Android学习笔记--AIDL
- Android学习笔记--AIDL
- Android AIDL学习笔记
- [Android 学习笔记]AIDL
- Android AIDL服务学习笔记
- android学习笔记之AIDL
- android学习笔记之AIDL
- Android AIDL服务学习笔记
- Android学习笔记之AIDL
- Android:学习AIDL笔记整理
- android API学习笔记:AIDL
- AIDL服务学习笔记 - Android Studio
- Android学习笔记(一):AIDL
- 学习笔记-Android AIDL传递对象数据
- Android Framework学习笔记 -- aidl的使用
- 笔记001:Aidl 学习
- AIDL学习笔记
- aidl学习笔记(一)
- ThreadLocal类
- POJ 2135(费用流基础题)
- Android 提交数据到服务器
- abd闪退解决办法
- Linux查看进程和终止进程的技巧
- Android学习笔记--AIDL
- javaweb学习总结——Servlet开发(一)
- 添加水印logo和文字 iOS
- spring boot集成mybatis
- 飞机大战(上篇绘制)
- sleep和yield,join
- Spring Boot 之web Filter --不支持排序的使用
- CSS3 transform笔记
- SQL优化大全