Использование посылок AIDL

Я читал сайты разработчиков Android о Parcels и AIDL, но у меня все еще есть вопрос. Почему объект Parcelable может быть возвращен из метода интерфейса AIDL, но не может быть передан в качестве параметра в метод AIDL? Я знаю, что методы интерфейса AIDL требуют примитивных типов данных (как указано на веб-сайте разработчика Android), но я могу передать объект Uri в качестве параметра - так почему я не могу передать объект Parcelable?


person jjNford    schedule 03.10.2011    source источник
comment
Ваши последние три предложения (не считая «Спасибо») относятся к этому, и неясно, что вы думаете об этом.   -  person CommonsWare    schedule 03.10.2011


Ответы (1)


Вы можете передавать объекты, подлежащие разделению, с помощью AIDL. В документах говорится: «Если у вас есть класс, который вы хотите отправить из одного процесса в другой через интерфейс IPC, вы можете это сделать. Однако вы должны убедиться, что код вашего класса доступен для другой стороны IPC. канал, и ваш класс должен поддерживать интерфейс Parcelable».

http://developer.android.com/guide/components/aidl.html#PassingObjects

person satur9nine    schedule 03.10.2011
comment
Да я это читал. Однако, когда я пытаюсь использовать объект Parcelable в качестве параметра, файл AIDL выдает ошибку. С другой стороны, у меня нет проблем с его использованием в качестве возвращаемого типа для функций интерфейса. Из того, что я читал в другом месте, его нельзя использовать в качестве параметра in. - person jjNford; 05.10.2011
comment
На данный момент я продвинулся вперед, не используя их, но могу вернуться к этому позже. Таким образом, у меня больше нет кода, но я обязательно опубликую ошибку, которую получу, когда вернусь к этому. - person jjNford; 05.10.2011
comment
@satur9nine, можем ли мы объявить метод, как показано ниже, в .aidl void sendMessageParcelable (приложение String, посылка Parcelable) - person umesh; 11.09.2015