Thank you for your answer.

On 25 Nov., 19:14, "Dianne Hackborn" <[EMAIL PROTECTED]> wrote:
> A oneway interface currently only applies when an IPC is needed to go
> through the interface -- that is when the callee and caller are running in
> different processes -- and is handled by Binder, the low-level IPC
> transport.
>

When I wrote my message yesterday, I had two services in the same APK.
They were BOTH defined in the AndroidManifest.xml with the attribute
android:process=":remote". I expected that the services will run in
different processes, because I thought android:process=":remote" will
automatically place each service in its own process. The FLAG_ONEWAY
option didn't work while the services were communicating with each
other.

Today I edited the APK's AndroidManifest.xml and now only one of the
both processes has the android:process=":remote" attribute in its
<service> tag. Now the asynchronous communication works in both
directions with the FLAG_ONEWAY option in the transact()-method of
both AIDL interfaces.

I read the documentation about android:process. I understood that in
case we define two services inside one APK with the
android:process=":remote" attribute, then the both services are inside
the same process because the attribute refers to the same process
name. If a developer want to have each service inside one APK in its
own process, she/he has to declare the android:process attribute like
that : android:process=":Service_Process_Unique_Name_For_This_APK".

In this way the asynchronous communication between services in own
processes in Android is possible. I hope the fact each service run in
separate process does not have enormous and destructive impact on
Android's performance and runtime environment.


> When two interfaces are in the same process, calls on them are just direct
> function calls into the other object, so there is no way to introduce
> asynchronicity.  I'd like to do the user-space work to allow for async local
> interfaces, but don't know when that may happen.  In the meantime, what we
> generally do is use a Handler on the receiving side to schedule the work in
> another thread so that all calls into the object are async.
>

I shall probably also take a look at the possibility for Handler usage.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to