android Service使用AIDL来操作服务

  上一篇博客,简单介绍了Service的使用和生命周期 点击此处前往 此篇简单介绍AIDL操作Service,比如想在Activity中操作Service的start和stop方法

1.在此,我不在重复上一篇所讲的Service的使用,在main上右键,选择New/AIDL/AIDL File

android Service使用AIDL来操作服务

  点击AIDL File出现一下界面

android Service使用AIDL来操作服务

  在interface Name 可以随便命名,点击完成,会看到在main,多出了一个目录和文件,如下图,当然此文件也可以手动创建,这里不在讲述

android Service使用AIDL来操作服务

  点击IMyAidlInterface.aidl文件,可以看到实际上里面就定义了一个接口,有一个方法,直接删除里面的方法,写入自己想实现的方法,比如也创建跟Service同名void start(), void stop()等

android Service使用AIDL来操作服务

  先build一下功能,生成对应的文件,内部类,可以调用外部类的所有方法和属性,在Service类中创建一个IMyAidlInterface的内部实现类,并实现该接口的所有的方法,在内部类中,获取外部类的实例,可以调用Service类所有的方法和属性了

android Service使用AIDL来操作服务

  在Service中的onBind方法,返回当前的IMyAidlInterface的实例

android Service使用AIDL来操作服务

  在启动者的ServiceConnection的实现类的onServiceConnected回调方法中获取IMyAidlInterface的实例

android Service使用AIDL来操作服务

  在此就可以操作Service了

android Service使用AIDL来操作服务