У меня есть приложение, которое использует сервис для создания ArrayList пользовательских объектов (MyObject) каждые x секунд. Затем я хочу, чтобы моя активность получила этот ArrayList.
В настоящее время я планирую, чтобы Служба отправляла сообщение обработчику Действия каждый раз, когда завершает запрос данных. Я хочу, чтобы сообщение для обработчика содержало ArrayList из MyObjects.
При создании метода в Activity для извлечения этого ArrayList из сообщения я заметил, что не могу.
Если бы я попытался
msg.getData().getParcelableArrayList("myObjects")
Тогда метод, который я передавал, ожидал, что ArrayList не примет его. Если бы я попытался привести результаты:
(ArrayList<MyObject>)msg.getData().getParcelableArrayList("myObjects")
Я получил ошибку: Cannot cast from ArrayList<Parcelable> to ArrayList<MyObject>
MyObject реализует Parcelable, и я успешно отправил ArrayList из моей службы в мою деятельность, заставив мою активность вызвать метод службы для ее получения. Я пытаюсь отказаться от того, чтобы моя активность опрашивала мою службу для получения этих данных.
1) Как я могу отправить ArrayList внутри пакета в сообщении обработчику?
2) Есть ли другая модель, которую я должен использовать, чтобы моя служба обновляла данные в моей деятельности, которые могут или не могут быть видны? Я всегда хочу, чтобы данные в моей деятельности были самыми последними из Службы.