Обмен данными между службами и видами деятельности - PullRequest
0 голосов
/ 26 сентября 2011

У меня есть ListView с пользовательским ArrayAdapter, который показывает заказы из ArrayList. Эти заказы должны быть синхронизированы с моим сервером. Там у меня есть API, который я запрашиваю для новых заказов, и если они есть, я получаю XML заказа обратно. Каков наилучший подход для динамического обновления listView? Я не хочу использовать SQLite для хранения заказов, потому что должны отображаться только последние десять. С ContentProvider я не могу сохранить свой пользовательский объект Order. И если я оберну ArrayList в одноэлементный класс и использую его в сервисе, а также в классе Activity для ArrayAdapter, ListView не обновляется динамически (возможно, потому что arrayAdapter создает копию массива?). Большое спасибо.

Filip

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

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

У меня есть DataMaanger, который является мостом между деятельностью иСеть или SQLite.DataMaanger хранит свои данные в памяти, поэтому они не находятся в БД или на диске.недостатком этого является то, что если ваше приложение будет убито из-за нехватки памяти и восстановит себя, dataManager будет пустым, что оставляет вам два варианта: либо при смерти каждого Activitie, либо при смерти вашей основной задачи вы сериализуете данные вашего DataManager илиВы не зависите от каких-либо предыдущих данных, просто сделайте запрос заново и обновите менеджер данных.Я использую широковещательные сообщения для уведомления о своей деятельности.

Чтобы получить доступ к DataManager, я не использую сиглетон.я использую объект Application, вы можете расширить его и в Manifest.xml дать его имя в теге, тогда он будет использоваться вместо обычного объекта Application.

Вы можете получить к нему доступ позже, используя getApplication () в классе Activity.

1 голос
/ 26 сентября 2011

использование Намерение или Связка

...