AIDL methods and interfaces marked with the "oneway" keyword are asynchronous Binder calls for remote processes, and it is said that the ordering of the calls is not guaranteed. On the other hand, the last comment of Dianne Hackborn (author of Binder) in this thread ( https://groups.google.com/forum/#!topic/android-developers/FFY-hg2Jx0M) says:
"ordering of delivery is tied to the target object (so you can receive calls on different interfaces out of order)"
Which seems to suggest, that calls to the same interface keep their order.
Can anyone clarify this?
As far as I remember, all transactions in Binder are synchronous, meaning that a client initiates a call and waits a reply from a server. However, in case of oneway communication, the server received such call simply returns, thus, this type of communication is oneway.
The calls in a service are processed in different Binder threads, thus, in case of synchronous communication you can be sure that the client will receive the reply after the request (because the client waits for the response from the server). However, in case of oneway call it can be a case that your requests from the client will be processed in different Binder threads. That is why, to my point of view, it is written that the order are not defined.