Элегантное решение для String in Message - PullRequest
0 голосов
/ 03 апреля 2019

Я пишу сервис Android, который предназначен для других приложений.Он использует Messenger как IBinder.

Теперь я столкнулся с проблемой: если я хочу отправить Message только с what и String, я изначально планировал использовать Message.obj для него.Это не работает, так как в документации говорится:

При использовании Messenger для отправки сообщения между процессами это может быть ненулевым, если оно содержит Parcelable класса Framework (а не тот, который реализованприложение).Для другой передачи данных используйте setData (Bundle).

Это поднимает два (связанных) вопроса:

  1. Почему String не Parcelable в Android?
  2. Есть еще "элегантное решение, чем создать для него Bundle и установить там мою строку?

1 Ответ

1 голос
/ 03 апреля 2019

1) Потому что он совместим с классом Java String, который не Parcelable (потому что его нет в стандартной библиотеке java 2) Поскольку обычно не требуется, чтобы строки могли быть отправлены по проводам без необходимости их отправки в большинстве ситуаций. Вы только что нашли странный угловой шкаф.

Должен сказать, что использование сообщения через подшивку довольно странно. Обычно вы просто отправляете данные как отдельные параметры для вызова.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...