我有一个应用程序,它使用服务每 x 秒创建一个自定义对象 (MyObject) 的 ArrayList。然后我希望我的 Activity 获得这个 ArrayList。
我目前正计划让服务在每次完成数据查询时向 Activity 的处理程序发送一条消息。我希望发送给处理程序的消息包含 MyObjects 的 ArrayList。
在 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) 我应该使用不同的模型来让我的服务更新我的活动中可能可见或不可见的数据吗?我总是希望我的活动中的数据是来自服务的最新数据。