自定义了数据类型用于存储计算结果,对两个long型数据进行加减乘除,四个结果保存在自定义的AllRes数据类型中。
先对自定义类型AllRes和远程服务Icompute用AIDL定义好,并写出对应的JAVA文件,AllRes.java和compute的service.java。
然后写出调用次service的java工程。
service先安装,因为没有对应的activity,所以可以在文件系统里查看,我的开始犯了错误,总是弹出readException的错误,是因为AllRes.java的写入顺序搞错了,这个要实现Parcelable的方法必须按顺序读写。发现这个问题后还是不对,然后一顿找,发现的第二个错误:
service包中的文件顺序改了,但远程调用它的程序copy了它的代码,我没有对应修改,导致还是旧的,所以要改动service中的AIDL或者自定义数据类型的java文件一定要把调用者的也相应改了。
本以为可以了,仍然不对,明明是加减乘除的顺序结果打印出来减法和乘法结果反了,将上面的又检查了一遍还是不对,最后才明白;
第三:一直重新编译调用者,但是修改service的程序后没有重新安装,这样即使修改了其中的接口文件和自定义数据类型也是没用的,最后先重新安装的service,又重新运行了远程调用的app才算大功告成,真是,不明白简单的道理和运行机制就瞎整很危险啊
写的有点乱,就当给自己提个醒了~~以后长点心吧!
继续加油