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