应用程序中的进程间通信同步回调方法、系统及相关设备技术方案

技术编号:22185799 阅读:27 留言:0更新日期:2019-09-25 03:32
本发明专利技术公开了一种应用程序中的进程间通信同步回调方法、系统、电子设备和存储介质。其中,所述应用程序具有第一进程和第二进程,该方法包括:在第一进程对预先建立的实例对象进行操作时,第一进程向第二进程发送服务调用请求,其中,实例对象是基于Binder通信机制,并依据欲调用第二进程完成目标业务服务而建立的,服务调用请求中携带有回调对象;第二进程在接收到服务调用请求时,确定服务调用请求对应的业务服务方法;第二进程执行对应的业务服务方法以得到执行结果,并将执行结果通过调用回调对象回传给第一进程。该方法可以解决现有技术中通过广播方式将执行结果返回所导致进程收到执行结果的延迟性的问题,降低了资源消耗。

Synchronized callback method, system and related equipment for inter-process communication in application program

【技术实现步骤摘要】
应用程序中的进程间通信同步回调方法、系统及相关设备
本专利技术涉及计算机应用领域,尤其涉及一种应用程序中的进程间通信同步回调方法、系统、电子设备和计算机可读存储介质。
技术介绍
Android(安卓,操作系统)系统是一种手持设备(如手机、平板电脑等),在日常的Android应用开发过程中经常会遇到一个应用程序中同时存在着多个进程的多进程开发模型。其中,在一些应用场景中会有两个进程间相互通信的需求,比如A进程提供了向服务器查询天气的服务,B进程想要获取当前的天气可以委托A进程代为查询,然后将查询结果告诉B进程。此时,这种情况下就会发生A、B两个进程间的通信需求。相关技术中,以上述提到实施例为例,实现A、B两个进程间的通信的做法是B进程通过广播或者Binder(Android系统中进程间的通信方式)的方式向A进程发起异步的查询请求,之后可进行其他操作,A进程进行查询后,将查询结果通过广播的形式,返给所有注册了A进程的查询服务的进程。然而,这种A进程广播方式将查询结果返回给注册过A进程查询服务的进程,一方面,广播可能有一定的延迟,从而影响B进程获得查询结果;另一方面,广播会告诉所有注册过A进程的查询服务的进程,导致资源消耗比较大,且注册和解注册不便管理。
技术实现思路
本专利技术的目的旨在至少在一定程度上解决相关技术中的技术问题之一。为此,本专利技术的一个目的在于提出一种应用程序中的进程间通信同步回调方法,该方法可以解决现有技术中通过广播方式将执行结果返回所导致进程收到执行结果的延迟性的问题,降低了资源消耗,且无需进行广播的注册和解注册,便于管理。本专利技术的第二个目的在于提出一种应用程序中的进程间通信同步回调系统。本专利技术的第三个目的在于提出一种电子设备。本专利技术的第四个目的在于提出一种计算机可读存储介质。为达到上述目的,本专利技术第一方面实施例提出的应用程序中的进程间通信同步回调方法,所述应用程序具有第一进程和第二进程,所述方法包括:在所述第一进程对预先建立的实例对象进行操作时,所述第一进程向所述第二进程发送服务调用请求,其中,所述实例对象是基于Binder通信机制,并依据欲调用所述第二进程完成目标业务服务而建立的,所述服务调用请求中携带有回调对象;所述第二进程在接收到所述服务调用请求时,确定所述服务调用请求对应的业务服务方法;所述第二进程执行所述对应的业务服务方法以得到执行结果,并将所述执行结果通过调用所述回调对象回传给所述第一进程。根据本专利技术实施例的应用程序中的进程间通信同步回调方法,所述应用程序具有第一进程和第二进程,在第一进程对预先建立的实例对象进行操作时,第一进程向第二进程发送服务调用请求,其中,实例对象是基于Binder通信机制,并依据欲调用第二进程完成目标业务服务而建立的,服务调用请求中携带有回调对象,第二进程在接收到服务调用请求时,确定服务调用请求对应的业务服务方法,然后第二进程执行对应的业务服务方法以得到执行结果,并将执行结果通过调用回调对象回传给第一进程。该方法通过第二进程将执行结果针对性回传给第一进程,可以解决现有技术中通过广播方式将执行结果返回所导致进程收到执行结果的延迟性的问题,降低了资源消耗,并将广播这种异步的回调转化成类似于普通方法回调类型的同步回调,优化了跨进程回调的逻辑和流程,且本申请不存在广播的注册和解注册的过程,便于对服务调用请求的管理。根据本专利技术的一个实施例,所述应用程序中的进程间通信同步回调方法还包括:在所述第一进程中预先定义同步回调接口文件,并将所述同步回调接口文件实体化为继承自Binder通信机制的Stub类;在所述第二进程中预先定义业务服务方法,其中,所述业务服务方法具有第一参数和第二参数,所述第一参数为所述第一进程欲让所述业务服务方法完成目标业务服务所需的参数,所述第二参数为所述Stub类及其子类的对象;在所述第一进程中欲调用所述第一进程的业务服务方法的位置处,预先建立所述Stub类的实例对象。根据本专利技术的一个实施例,所述第一进程向所述第二进程发送服务调用请求,包括:所述第一进程通过Binder通信机制向所述第二进程发送服务调用请求。根据本专利技术的一个实施例,所述服务调用请求中还携带有欲让所述业务服务方法完成业务服务所需的目标参数;所述第二进程执行所述对应的业务服务方法以得到执行结果,并将所述执行结果通过调用所述回调对象回传给所述第一进程,包括:所述第二进程将服务调用请求中的目标参数和所述回调对象代入所述对应的业务服务方法;所述第二进程执行所述对应的业务服务方法以得到执行结果;所述第二进程确定预先设定的数据封装规则,并将所述执行结果进行封装,以及将封装后的执行结果通过调用所述回调对象回传给所述第一进程。根据本专利技术的一个实施例,所述应用程序中的进程间通信同步回调方法还包括:所述第一进程在通过所述回调对象接收到所述第二进程发送的所述执行结果时,确定预先设定的解析规则;其中,所述解析规则与预先设定的数据封装规则具有对应关系;所述第一进程根据所述解析规则对所述执行结果进行数据解析,以得到针对调用所述第二进程的业务服务的结果。为达到上述目的,本专利技术第二方面实施例提出的应用程序中的进程间通信同步回调系统,包括:第一进程和第二进程,其中,所述第一进程,用于在对预先建立的实例对象进行操作时,向所述第二进程发送服务调用请求,其中,所述实例对象是基于Binder通信机制,并依据欲调用所述第二进程完成目标业务服务而建立的,所述服务调用请求中携带有回调对象;所述第二进程,用于在接收到所述服务调用请求时,确定所述服务调用请求对应的业务服务方法,并执行所述对应的业务服务方法以得到执行结果,并将所述执行结果通过调用所述回调对象回传给所述第一进程。根据本专利技术实施例的应用程序中的进程间通信同步回调系统,所述应用程序具有第一进程和第二进程,在第一进程对预先建立的实例对象进行操作时,第一进程向第二进程发送服务调用请求,第二进程在接收到服务调用请求时,确定服务调用请求对应的业务服务方法,然后第二进程执行对应的业务服务方法以得到执行结果,并将执行结果通过调用回调对象回传给第一进程。由此,通过第二进程将执行结果针对性回传给第一进程,可以解决现有技术中通过广播方式将执行结果返回所导致进程收到执行结果的延迟性的问题,降低了资源消耗,并将广播这种异步的回调转化成类似于普通方法回调类型的同步回调,优化了跨进程回调的逻辑和流程,且本申请不存在广播的注册和解注册的过程,便于对服务调用请求的管理。根据本专利技术的一个实施例,所述应用程序中的进程间通信同步回调系统还包括:预先定义模块,用于在所述第一进程中预先定义同步回调接口文件,并将所述同步回调接口文件实体化为继承自Binder通信机制的Stub类,并在所述第二进程中预先定义业务服务方法,其中,所述业务服务方法具有第一参数和第二参数,所述第一参数为所述第一进程欲让所述业务服务方法完成目标业务服务所需的参数,所述第二参数为所述Stub类及其子类的对象,以及在所述第一进程中欲调用所述第一进程的业务服务方法的位置处,预先建立所述Stub类的实例对象。根据本专利技术的一个实施例,所述第一进程具体用于:通过Binder通信机制向所述第二进程发送服务调用请求。根据本专利技术的一个实施例,所述服务调用请本文档来自技高网...

【技术保护点】
1.一种应用程序中的进程间通信同步回调方法,所述应用程序具有第一进程和第二进程,其特征在于,所述方法包括以下步骤:在所述第一进程对预先建立的实例对象进行操作时,所述第一进程向所述第二进程发送服务调用请求,其中,所述实例对象是基于Binder通信机制,并依据欲调用所述第二进程完成目标业务服务而建立的,所述服务调用请求中携带有回调对象;所述第二进程在接收到所述服务调用请求时,确定所述服务调用请求对应的业务服务方法;所述第二进程执行所述对应的业务服务方法以得到执行结果,并将所述执行结果通过调用所述回调对象回传给所述第一进程。

【技术特征摘要】
1.一种应用程序中的进程间通信同步回调方法,所述应用程序具有第一进程和第二进程,其特征在于,所述方法包括以下步骤:在所述第一进程对预先建立的实例对象进行操作时,所述第一进程向所述第二进程发送服务调用请求,其中,所述实例对象是基于Binder通信机制,并依据欲调用所述第二进程完成目标业务服务而建立的,所述服务调用请求中携带有回调对象;所述第二进程在接收到所述服务调用请求时,确定所述服务调用请求对应的业务服务方法;所述第二进程执行所述对应的业务服务方法以得到执行结果,并将所述执行结果通过调用所述回调对象回传给所述第一进程。2.根据权利要求1所述的方法,其特征在于,还包括:在所述第一进程中预先定义同步回调接口文件,并将所述同步回调接口文件实体化为继承自Binder通信机制的Stub类;在所述第二进程中预先定义业务服务方法,其中,所述业务服务方法具有第一参数和第二参数,所述第一参数为所述第一进程欲让所述业务服务方法完成目标业务服务所需的参数,所述第二参数为所述Stub类及其子类的对象;在所述第一进程中欲调用所述第一进程的业务服务方法的位置处,预先建立所述Stub类的实例对象。3.根据权利要求1所述的方法,其特征在于,所述第一进程向所述第二进程发送服务调用请求,包括:所述第一进程通过Binder通信机制向所述第二进程发送服务调用请求。4.根据权利要求1所述的方法,其特征在于,所述服务调用请求中还携带有欲让所述业务服务方法完成业务服务所需的目标参数;所述第二进程执行所述对应的业务服务方法以得到执行结果,并将所述执行结果通过调用所述回调对象回传给所述第一进程,包括:所述第二进程将服务调用请求中的目标参数和所述回调对象代入所述对应的业务服务方法;所述第二进程执行所述对应的业务服务方法以得到执行结果;所述第二进程确定预先设定的数据封装规则,并将所述执行结果进行封装,以及将封装后的执行结果通过调用所述回调对象回传给所述第一进程。5.根据权利要求1至4中任一项所述的方法,其特征在于,还包括...

【专利技术属性】
技术研发人员:钟汉文
申请(专利权)人:北京金山安全软件有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1