1.先创建一个服务端的Aidl
2.然后在Aidl里面写参数 等会要用到 等会要穿的参数类型
// myaidl.aidl
package comqq.example.hasee.myapplication;
// Declare any non-default types here with import statements
interface myaidl {
String aa(String a);
}
3.自己创建个类继承于server 既然写了服务那肯定还要在清单文件中用
public class fuwu extends Service {
myaidl.Stub my=new myaidl.Stub() {
@Override
public String aa(String a) throws RemoteException {
return "小阿飞"+a;
}
};
@Nullable
@Override
public IBinder onBind(Intent intent) {
return my;
}
}
3.5在清单文件中使用
4.上面服务端的就写好了 接下来就写客户端的 把服务端的Aidl类拷贝到客户端里去 客户端代码
public class MainActivity extends AppCompatActivity {
myaidl my;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
ServiceConnection ser=new ServiceConnection(){
@Override
public void onServiceConnected(ComponentName componentName, IBinder iBinder) {
my=myaidl.Stub.asInterface(iBinder);
}
@Override
public void onServiceDisconnected(ComponentName componentName) {
}
};
@Override
protected void onStart() {
super.onStart();
//这是消息通道
Intent qq = new Intent("qqqqqq");
//这是是服务端的包名
qq.setPackage("comqq.example.hasee.myapplication");
//绑定服务器
bindService(qq,ser, Context.BIND_AUTO_CREATE);
}
public void c(View view) throws RemoteException {
String ww = my.aa("ww");
Toast.makeText(this, ""+ww, Toast.LENGTH_SHORT).show();
}
}