android aidl 主进程子进程间数据相互传递

android中进程间的通信对与大量的接口的调用的时候,一般是子进程调用主进程的方法,但是主进程主动调用子进程的方法,一直没找到相关的资料,现在项目的需要,与同事研究出来了,直接上代码:
在主进程中实现如下的aidl的代码
package com.sunhb.main.aidl;

import com.sunhb.main.aidl.IClient;

interface IMain
{
   void regesiterClient(IClient iclient);
}
这个是在主进程中实现

package com.sunhb.main.aidl;

interface IClient
{
  void initClient();
}
在子进程中实现

在子进程中绑定连接的时候
iMain = IMain.Stub.asInterface(service);
            try
            {
                iMain.regesiterClient(new ClientImpl());
            }
            catch (RemoteException e)
            {
                e.printStackTrace();
            }

这个时候在主进程中
class MainImpl extends IMain.Stub
    {

        @Override
        public void regesiterClient(IClient iclient)
            throws RemoteException
        {
            System.out.println("-------------------");
            TextService.this.iClient = iclient;
            TextService.this.iClient.initClient();
        }
       
    }

这样就实现主进程主动的调用子进程的方法

你可能感兴趣的:(android)