• 写一个简单的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();
    }
    }
    }
  • 相关阅读:
    windows命令行下导入excel数据到SQLite数据库
    Android Studio如何提示函数用法
    在不root手机的情况上读取Data目录上的文件
    OSI七层模型
    设计模式之代理模式
    Android中Javascript中的调用
    cf #205 B Codeforces Round #205 (Div. 2) B. Two Heaps
    uva 10600 次小生成树
    防2B && 图论模板 && 7788
    最大匹配 && 最佳完美匹配 模板
  • 原文地址:https://www.cnblogs.com/mwl523/p/14084353.html
Copyright © 2020-2023  润新知