zoukankan      html  css  js  c++  java
  • 写一个简单的AIDL

    1.首先创建一个AIDL文件,并添加上两个接口。
    IMyAidlInterface.aidl

    package com.example.broadcastdemo;

    // Declare any non-default types here with import statements

    interface IMyAidlInterface {

    void request();
    String getName();
    }


    2.编写服务端实现AIDL相应的接口
    MyService.java

    public class MyService extends Service {
    public MyService() {
    }

    private final IBinder iBinder = new IMyAidlInterface.Stub() {
    @Override
    public void request() throws RemoteException {


    }

    @Override
    public String getName() throws RemoteException {
    return "您好,我的名字叫服务端";
    }
    };

    @Override
    public void onCreate() {
    super.onCreate();
    }

    @Override
    public IBinder onBind(Intent intent) {
    return iBinder;
    }

    }


    3:使用

    private void binAidl() {
    if (myAidlInterface == null) {
    try {
    Intent intent = new Intent("com.example.broadcastdemo.MyService");
    intent.setPackage("com.example.broadcastdemo");
    boolean result = bindService(intent, ServiceConnection, Context.BIND_AUTO_CREATE);
    Log.e(TAG, "createPopupServiceConnection: result " + result);
    }catch (Exception e){
    Log.e(TAG, "createPopupServiceConnection: Exception" + e.getLocalizedMessage());
    }

    }
    }

    private android.content.ServiceConnection ServiceConnection = new ServiceConnection() {
    @Override
    public void onServiceConnected(ComponentName name, IBinder service) {
    Log.e(TAG, "onServiceConnected: ServiceConnection");
    myAidlInterface = IMyAidlInterface.Stub.asInterface(service);
    }

    @Override
    public void onServiceDisconnected(ComponentName name) {
    Log.e(TAG, "onServiceDisconnected: ServiceConnection");
    myAidlInterface = null;
    }
    };


    private void getName(){
    if (myAidlInterface != null) {
    try {
    String str = myAidlInterface.getName();
    Log.e(TAG, "" + str);
    } catch (RemoteException e) {
    e.printStackTrace();
    }
    }
    }
  • 相关阅读:
    DHCP DHCPv6
    DHCPv6协议
    IPv6邻居发现协议
    CentOS下禁止防火墙
    centOS下更新yum源
    centOS下yum报错
    Flink+Kafka整合的实例
    Flink基本概念
    Ubuntu16.04下配置ssh免密登录
    Zookeeper+Kafka的单节点配置
  • 原文地址:https://www.cnblogs.com/mwl523/p/14084353.html
Copyright © 2011-2022 走看看