我在Android应用中使用 AIDL 。以下是我有疑问的两个案例。
案例1 。客户的aidl文件有一个方法a()
,而aidl服务文件有两个方法a()
和b()
。
它能正常工作吗?我已经测试过,没有看到任何问题。 binService()
方法正常工作。
案例2 。客户的援助文件有2个方法a()
和b()
,但aild服务文件只有a()
方法。
binService()
方法有效。当我们在客户端调用b()
方法时,我们会崩溃。在这里,我认为binService
不应该有效,因为aidl服务没有方法b()
。
我想确保我得到的结果是正确的,并且它总是在所有设备上发生。
答案 0 :(得分:0)
你得到的结果是正确的。另请注意,排序对于aidl文件很重要。
示例如果客户端和服务中有2个方法:
googleMap = ((SupportMapFragment) getChildFragmentManager().findFragmentById(R.id.map)).getMap();
然后在
之间添加了方法a()
b()
c()
在这种情况下,如果您没有使用更新的aidl更新客户端,那么从客户端调用方法a()
c()
b()
最终会在服务中调用b()
- 这很奇怪,但这是它似乎工作的方式(我通过研究android 4.3)