Android跨进程通信

Android跨进程通信,第1张

呵呵。这个很简单,如果接收方只是做出收到消息的提示而已。

不过,问题深入一点的话,如果需要接收方反馈信息给发送方的话,就需要做点东西了。或者,发送方需要讲本地进程的一些变量的值发送给接收方的话,那也许要做些东西。

因为,他们不能跨进程相互访问对方的数据

就像有人试图用 SendMessage( WM_GETTEXT )来访问远进程的编辑框内的数据一样。直接这么用是不能成功的。想这么做的话,必须:

方法1、使用内核对象等机制来共享数据。

方法2、注入代码到远进程来实现访问,访问后再撤销。

不知道楼主需要的是不是相互发送数据,还是仅仅是发送消息而已。

====================================================

由于最近比较忙,给你写例子的可能性不是很大。抱歉。

不过可以给你一些提示:

方案1:

发送方:

1、首先需要知道接受方处理消息的窗口句柄。

方法有很多,可以枚举所有窗口(EnumWindow),然后判断标题是不是接受方的窗口标题,也可以直接由发送方来创建接受方的进程(CreateProcess),然后获得接受方进程的窗口句柄。

2、使用SendMessage( 目标hWnd, 自定义的消息ID, 0L, 0L )向接受方发送消息。

如果不需要等待处理结束才返回,可以使用PostMessage,而不是SendMessage

3、接受方的消息处理过程中添加对自定义消息的处理过程。

这种方法不能发送数据,仅仅能发送消息而已。

方案2:

1、创建内核对象,比如CMapFile。定义某种数据结构比如队列。

2、发送方或者接受方,谁先运行谁就创建该内核对象(后运行的是打开而不是创建,方法是首先试图打开,如果失败,则创建)并且使用相同的名字。

3、发送方向对象中填写数据。

4、接受方利用一个单独的线程(或者定时器)检测内核对象中的数据,一旦发现有数据,就取出,并且从内河对象中删除该数据。

这种方法不仅可以发送消息,而且可以发送任何东西。

以上就是关于Android跨进程通信全部的内容,包括:Android跨进程通信、Android 使用Messenger实现跨进程之间通信、高手帮忙 编写一个向其它程序发送消息的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/9692728.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存