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();
}
}
这样就实现主进程主动的调用子进程的方法
在主进程中实现如下的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 实现在titlebar上显示进度条
2012-11-13 18:48 867先是在setContextView之前设置界面的样式 requ ... -
android 实现下拉刷新的功能
2012-11-13 15:41 4321在android中有时我们要实现下拉刷新的功能,我在前日人的基 ... -
android aidl进程间方法的调用
2012-10-10 14:21 1646android 进程的通信很多,可以用intent传递数据,可 ... -
listView 点击一个Item效果
2012-01-13 17:20 6本人刚做一个项目需求是这样的:展示通话记录的列表,点击每一条记 ... -
android aidl
2012-01-11 11:12 1058android中的进程间的通信很多,下面粗略的讲解一下如何实现 ... -
android 权限大全
2011-12-22 20:08 890android.permission.ACCESS_CHECK ... -
android Action大全
2011-12-21 20:26 1172String ADD_SHORTCUT_ACTION 动作 ... -
android 自定义桌面
2011-12-03 16:23 14161、 把背景图片push到SDCard中 adb pu ... -
android 游戏开发加载界面获取资源文件中图片ID的集合
2011-12-03 13:18 4980主要给大家介绍如何加载界面的图片。正如前面Abs ... -
android 判断网络是否连接可用
2011-12-03 13:06 1695// 判断网络是否正常 public static boole ... -
火星通讯录
2011-11-25 20:27 1431一、用.rar打开apk文档,得到文档结构图如下所示 ... -
android 四种加载模式2
2011-11-16 11:13 1000singleInstance模式解决了这个问题(绕了这么半天才 ... -
activity 的四种加载的模式1
2011-11-16 11:11 1033在android应用的开发中有时会activity之间的重复的 ... -
android 面试题
2011-11-09 20:17 1052android 面试题 1.android中进程和进程间的通信 ... -
android ksoap调用天气预报
2011-11-08 19:27 5133下面例子改自网上例子:http://express.ruank ... -
android NDK
2011-11-03 21:34 2079Cygwin+Android NDK的安装 时 间 版 本 ... -
android 判断sdcard是否存在,以及写入权限
2011-10-16 16:57 5789做android 开发的时候经常涉及到权限的问题,而我们像sd ... -
android bitmap
2011-10-14 11:02 849对于android终端应用软件开发的人员来说图片显示时,如果图 ... -
android popupwindow,调用本地的图库,照相
2011-10-14 10:51 5434我们写项目的时候又是要自定义弹出美观的悬浮操作窗口,这里我们可 ... -
android notification
2011-10-14 10:39 1053前些天刚刚做一个项目的预演,要用到广播通知,一下是一些小的学习 ...
相关推荐
在Android系统中,进程间通信(IPC,Inter-Process Communication)是实现不同应用程序之间数据交换的关键技术。Android Aidl(Android Interface Definition Language)是Android提供的一种强大的IPC机制,它允许两...
在Android系统中,进程间通信(IPC,Inter-Process Communication)是实现不同应用程序之间数据交换的关键技术。Android提供多种IPC方式,其中AIDL(Android Interface Definition Language)是一种强大的工具,用于...
而Android Interface Definition Language(AIDL)是Google提供的一种用于处理进程间通信的语言,它允许应用程序之间透明地交换数据。当我们需要在不同的应用之间传递复杂的对象时,AIDL就显得尤为重要。本文将深入...
由于进程间的数据传递需要通过Binder机制,所有参数和返回值都必须是Android支持的序列化类型,如基本类型、String、Parcelable或Serializable。如果需要传递自定义对象,那么该类需要实现`Parcelable`或`...
总的来说,这个"AIDL List传递 String传递(android studio)"的示例为我们展示了如何在Android Studio中利用AIDL实现在不同进程间传递List数据和String数据。理解并掌握AIDL的使用,对于开发涉及多进程通信的复杂...
AIDL(Android Interface Definition Language)是Android提供的一种接口定义语言,用于支持跨进程调用方法,从而实现多进程间的通信。 AIDL的基本原理是将接口定义为一个.aidl文件,系统会自动生成对应的Java代码...
在实际项目中,考虑到性能和安全,通常会结合以上策略,例如先将Bitmap转换为流,然后通过Binder机制在进程间传输。 接下来,我们要实现这个接口。在生成的Java类中,系统会自动生成一个Binder对象,我们可以在这个...
在Android系统中,进程间通信(IPC,Inter-Process Communication)是实现不同应用程序之间数据交换的关键技术。AIDL(Android Interface Definition Language)是Android提供的一种工具,用于方便开发者定义和实现...
标题“android aidl跨进程通信”指的是通过AIDL在Android上进行不同进程间的数据交换和功能调用的过程。在Android中,每个应用默认运行在自己的进程中,当需要不同应用间共享数据或调用对方的功能时,就需要借助IPC...
`IRemoteBinder.aidl`可能定义了一个接口,该接口包含了处理跨进程通信的方法,而`Book.aidl`则可能定义了一个自定义的数据类型`Book`,这个类型将在进程间传递。 `IRemoteBinder.aidl`可能会这样写: ```aidl ...
总结,AIDL是Android系统提供的一种高效、灵活的进程间通信方式,它简化了跨进程通信的复杂性,让开发者可以方便地在服务和客户端之间传递数据和调用方法。掌握AIDL的使用,对于开发大型的、需要多进程协作的Android...
在Android系统中,进程间通信(Inter-Process Communication, 简称IPC)是一种关键的技术,使得不同进程之间能够共享数据和协调工作。AIDL(Android Interface Definition Language)是Android提供的一种工具,用于...
AIDL提供了一种机制,使得Android应用能够跨进程传递数据,包括自定义对象。本文将深入探讨如何在Android Studio环境下,利用AIDL接口来传递自定义对象。 首先,了解AIDL的基本概念。AIDL是一种接口定义语言,它...
在Android系统中,进程间的通信(Inter-Process Communication, 简称IPC)是一项重要的技术,使得不同应用程序之间能够共享数据和服务。本篇主要探讨如何使用Android的aidl(Android Interface Definition Language...
在Android系统中,AIDL(Android Interface Definition Language)是一种强大的工具,用于实现应用程序间的进程间通信(IPC,Inter-Process Communication)。AIDL使得一个应用能够暴露其服务给其他应用调用,即使...
本教程将详细讲解如何在Android Studio中创建并使用AIDL,以便不同进程间的组件能够相互调用方法,共享数据。 首先,让我们了解AIDL的基本概念。AIDL允许开发者定义一个接口,这个接口可以被Android系统用来生成...
通过aidl,我们可以方便地定义接口,实现进程间的交互,使得Android应用能够灵活地扩展其功能,与其他应用或系统组件协同工作。同时,理解Binder的工作流程也有助于优化性能,避免不必要的资源消耗。在实际项目中,...
在Android系统中,进程间的通信(Inter-Process Communication, 简称IPC)是一个重要的功能,它允许不同的应用程序之间共享数据和服务。AIDL(Android Interface Definition Language)是Android提供的一种工具,...
在Android系统中,进程间通信(Inter-Process Communication, 简称IPC)是一种关键的技术,使得不同进程间的组件能够相互通信、共享数据。AIDL(Android Interface Definition Language)是Android提供的一种特殊...