如果AIDL文件不匹配会发生什么?

时间:2016-03-23 05:43:41

标签: android service client aidl

我在Android应用中使用 AIDL 。以下是我有疑问的两个案例。

案例1 。客户的aidl文件有一个方法a(),而aidl服务文件有两个方法a()b()

它能正常工作吗?我已经测试过,没有看到任何问题。 binService()方法正常工作。

案例2 。客户的援助文件有2个方法a()b(),但aild服务文件只有a()方法。

binService()方法有效。当我们在客户端调用b()方法时,我们会崩溃。在这里,我认为binService不应该有效,因为aidl服务没有方法b()

我想确保我得到的结果是正确的,并且它总是在所有设备上发生。

1 个答案:

答案 0 :(得分:0)

你得到的结果是正确的。另请注意,排序对于aidl文件很重要。

示例如果客户端和服务中有2个方法:

googleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();

然后在

之间添加了方法a() b()
c()

在这种情况下,如果您没有使用更新的aidl更新客户端,那么从客户端调用方法a() c() b() 最终会在服务中调用b() - 这很奇怪,但这是它似乎工作的方式(我通过研究android 4.3)

完成了