Я пытаюсь понять, как взаимодействовать между приложениями в Android, а не только между экземплярами Activity
.
Я установил «клиент», который отправляет объект Messenger в службу (в Intent
, отправленном в службу); служба создает объект Message
и отправляет его «клиенту» с помощью messenger.send(message)
. Это работает нормально, пока я не попытаюсь использовать Message.obj для хранения объекта.
Я создал свой Parcelable
класс MyParcelable
в сервисе и вставил его в сообщение. Все работает до тех пор, пока сообщение не будет рассортировано в «клиенте». Unmarshall терпит неудачу, потому что «клиент» не имеет доступа к классу MyParcelable
. Это очевидно - они в разных пакетах (скажем, com.whatever.myclient
и com.whatever.myserver
). Это совершенно неправильный способ сделать это?
Я также пытался создать Parcel
и отправить его (таким образом, оба приложения будут иметь доступ к классу), но Parcel
не является Parcelable
. Я читал об использовании загрузчиков классов, но не понимаю, как отдельные загрузчики классов в отдельных приложениях (процессы, если я понимаю архитектуру Android в этом отношении). То есть, как можно «научить» один загрузчик классов классу, существующему в другом загрузчике классов? Конечно, кажется, что должно быть очевидное «вот как вы это делаете», но я еще не видел этого.