2013-02-25 5 views
2

У меня есть приложение, у которого есть служба этого запуска STICKY, если у вас есть работа, даже если пользователь закрывает приложение, работа службы до завершения ее работы.Передача ArrayList <T> между сервисом и деятельностью

Посмотрите, что я следил за учебником Android Example: Communication between Activity and Service using Messaging и адаптировался к моему приложению, но когда я пытаюсь отправлять сообщения, это не получает мой сервис или клиент.

Также мне нужно передать аргументы более сложным, как ArrayList рабочий процесс, как это

  1. пользователей начать мое приложение и приложение запустить службу
  2. пользователь нажать кнопку в приложении и приложение (это может быть целое число)
  3. сервис извлекает данные из Интернета, обрабатывает и отправляет эти данные в приложение if, если не служба уведомляет пользователя о новых данных
  4. если через какое-то время ничего получает от сервера останов обслуживания.

Вопрос Как передать сложные объекты между сервисом и приложением?

ответ

1

Вы можете передать сложные объекты в Message, используя setData(android.os.Bundle). Связки нуждаются в данных Parcelable, поэтому они могут быть сериализованы, но для удобства доступны поддержка ArrayLists основных типов (таких как целые числа и строки). Если ваш список содержит пользовательские объекты, вам нужно будет их реализовать Parcelable и добавить их в свой комплект, используя putParcelableArrayList(String key, ArrayList<? extends Parcelable> value).

Если ваши данные довольно сложны/структурированы, вы также можете изучить использование Content Provider. Существует начальная кривая обучения, но поставщики хорошо подходят для некоторых случаев.