基本步骤
remoteService
1、生成aidl文件(先生成java的接口文件,修改后缀名为aidl,去掉public)
2、定义业务服务StudentQueryService及其内部类StudentQueryBinder
3、实现StudentQueryService的onBind()和query()
4、在manifest中配置服务信息
=====================================================
实现的代码
1、生成aidl文件
interface StudentQuery { String queryStudent(int number); }
2、定义业务服务StudentQueryService及其内部类StudentQueryBinder
public class StudentQueryService extends Service { private final class StudentQueryBinder extends StudentQuery.Stub{ public String queryStudent(int number) throws RemoteException { return query(number); } } }
3、实现StudentQueryService的onBind()和query()
@Override public IBinder onBind(Intent intent) { return binder; } private String query(int number){ if(number > 0 && number < 4){ return names[number - 1]; } return null; }
4、在manifest中配置服务信息
<service android:name=".StudentQueryService">
<intent-filter >
<action android:name="com.peter.remoteservice.queryinfo"/>
</intent-filter>
</service>
==========================================================
remoteServiceClient的基本操作和实现代码
基本操作
1、新建工程和Activity, copy刚才的aidl文件到src下
2、在Activity中添加StudentQuery属性,新建内部类StudentConnection
3、实现onCreate() onDestroy()、按钮处理事件、业务逻辑方法等
----------------------------------------------------------------------------------------------------
实现代码
2、在Activity中添加StudentQuery属性,新建内部类StudentConnection
private StudentQuery studentQuery; private final class StudentConnection implements ServiceConnection { public void onServiceConnected(ComponentName name, IBinder service) { studentQuery = StudentQuery.Stub.asInterface(service); } public void onServiceDisconnected(ComponentName name) { studentQuery = null; } }
3、实现onCreate() onDestroy()、按钮处理事件、业务逻辑方法等
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
numberText = (EditText) this.findViewById(R.id.number);
resultView = (TextView) this.findViewById(R.id.resultView);
Intent intent = new Intent("com.peter.remoteservice.queryinfo");
bindService(intent, conn, BIND_AUTO_CREATE);
}
public void queryStudent(View v) {
String number = numberText.getText().toString();
int num = Integer.valueOf(number);
try {
resultView.setText(studentQuery.queryStudent(num));
} catch (RemoteException e) {
e.printStackTrace();
}
}
@Override
protected void onDestroy() {
unbindService(conn);
super.onDestroy();
}
相关推荐
Android使用AIDL实现进程间通信
Android使用AIDL实现跨进程的通信.rar
android aidl跨进程通信例子,简单明了
NULL 博文链接:https://android-zhang.iteye.com/blog/1850180
代码中包含两个应用程序,两者之间通信采用aidl方案实现 使用方法:将下载下来的图片后缀名改为.zip,再解压即可得到源代码
在Android中,如果我们需要在不同进程间实现通信,就需要用到AIDL技术去完成。 AIDL(Android Interface Definition Language)是一种接口定义语言,编译器通过*.aidl文件的描述信息生成符合通信协议的Java代码,...
Android利用Aidl实现跨进程通信并传递数据的Demo
关于使用aidl进行跨进程通信的简单demo
Android aidl 实现进程间通信(IPC)
intent、 messenger 、aidl实现进程间通信 3个demo分别用客户端服务端实现进程间通信
该资源包含了一个通过aidl实现android之间进程的通信,代码简单。
Android 使用AIDL跨进程通信--传递自定义对象 服务端进程-SystemApp(包含IRemoteBinder.aidl,Book.aidl) 客户端进程-ClientApp
使用AIDL完成进程间的简单通信
andorid 不同进程间的通信, uses the aidl to comple the demo,hope you can learn ,and give me you idear .
AIDL:Android Interface Definition Language,即Android接口定义语言. android studio中使用aidl实现跨进程通讯,具体步骤如下
简单实现aidl的跨进程通信,快速了解AIDL接口定义语言的使用
Android AIDL跨进程通信 的demo,包括两部分,两个项目
Android Studio实现AIDL跨进程通信DEMO,把服务端实现和客户端实现合在一起在同一项目下进行实现。参考http://blog.csdn.net/ljttianqin/article/details/78184788
Android aidl跨进程通信