Имам приложение, което използва услуга за създаване на ArrayList от персонализирани обекти (MyObject) на всеки x секунди. След това искам моята дейност да получи този ArrayList.
В момента планирам услугата да изпраща съобщение до манипулатора на активността всеки път, когато завърши заявката за данните. Искам съобщението до Handler да съдържа 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) Има ли различен модел, който трябва да използвам, за да накарам моята услуга да актуализира данните в моята активност, които могат или не могат да бъдат видими? Винаги искам данните в дейността ми да са най-новите от Услугата.