Android 使用信使进行仪器测试
我有一个使用UPnP服务器的应用程序。对于插装测试,我想模拟它,即创建自己的UPnP服务器,该服务器将由测试插装。不幸的是,UPnP服务器似乎无法在测试包中与作为UPnP客户端的应用程序的相同进程中运行,因此我决定将此UPnP服务器放在不同的APK中,并使用Android的Messenger功能对其进行控制 我已经为另一个项目设置了这样的IPC,因此我使用了其中的一些代码,并且我能够成功地将消息从测试客户端发送到UPnP服务器。但是,测试无法从服务器接收任何消息。我在消息的replyTo字段中发送客户端的Messenger对象,服务器正在使用此Messenger发回另一条消息-发送似乎成功,但没有任何消息到达客户端。如果客户端在服务器开始发送回复之前断开连接,那么在发送回复期间,我会收到一个异常,即接收方不可用。对我来说,这意味着用于回复的Messenger对象是正确的 有没有人遇到过类似的问题,或者知道这里的问题是什么? 为什么Android IPC不能与instrumentationfunctional test一起工作?Android在测试包下对代码的处理有什么不同吗Android 使用信使进行仪器测试,android,ipc,instrumentation,Android,Ipc,Instrumentation,我有一个使用UPnP服务器的应用程序。对于插装测试,我想模拟它,即创建自己的UPnP服务器,该服务器将由测试插装。不幸的是,UPnP服务器似乎无法在测试包中与作为UPnP客户端的应用程序的相同进程中运行,因此我决定将此UPnP服务器放在不同的APK中,并使用Android的Messenger功能对其进行控制 我已经为另一个项目设置了这样的IPC,因此我使用了其中的一些代码,并且我能够成功地将消息从测试客户端发送到UPnP服务器。但是,测试无法从服务器接收任何消息。我在消息的replyTo字段中发
我想这无关紧要,但我正在使用Robotium进行测试。所以问题当然是我的消息处理程序。 它是在测试设置期间创建的,因此它是在检测线程上创建的。测试方法的执行将在此检测线程中再次完成,除非您将其注释为在UI线程上运行。这意味着,当测试方法执行时,消息处理程序无法执行,因此永远不会收到消息 使用循环器在新线程中创建处理程序,修复了我的问题 这段视频非常有助于提供更多关于IPC如何在Android中工作的信息,以及Messenger真正为您做了什么。