Как отправить объекты через связку - PullRequest
112 голосов
/ 22 ноября 2010

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

Проблема в том, что он не имеет ничего общего с намерениями или контекстами и имеет большое количество не примитивныхобъекты.Как мне упаковать класс в parcelable / serializable и передать его в startActivityForResult?

Ответы [ 11 ]

0 голосов
/ 07 сентября 2012

Это очень запоздалый ответ на мой собственный вопрос, но он продолжает привлекать внимание, поэтому я чувствую, что должен ответить на него. Большинство из этих ответов верны и отлично справляются с работой. Тем не менее, это зависит от потребностей приложения. Этот ответ будет использован для описания двух решений этой проблемы.

Применение

Первым является Приложение , так как здесь больше всего говорят об ответе. Приложение является хорошим объектом для размещения сущностей, которым нужна ссылка на Context. Для ServerSocket, несомненно, потребуется контекст (для файлового ввода-вывода или простых обновлений ListAdapter). Я лично предпочитаю этот маршрут. Мне нравятся приложения, они полезны для извлечения контекста (потому что они могут быть сделаны статическими и вряд ли вызовут утечку памяти) и имеют простой жизненный цикл.

Услуги

Сервис` является вторым. На самом деле `Service` - лучший выбор для моей проблемы, потому что именно для этого предназначены службы:
A Service is an application component that can perform long-running operations in
the background and does not provide a user interface.
Сервисы аккуратны тем, что имеют более определенный жизненный цикл, которым легче управлять. Кроме того, при необходимости службы могут запускаться извне приложения (т. Е. При загрузке). Это может быть необходимо для некоторых приложений или просто удобной функции.

Это не было полным описанием, но я оставил ссылки на документы для тех, кто хочет больше исследовать. В целом Service лучше для нужного мне экземпляра - запуск ServerSocket для моего устройства SPP.

...