0

首先我可以说我知道有很多资源处理服务和活动之间的通信,我还阅读了android开发者指南中与服务相关的部分。但是,我仍然不确定在我的情况下最好的方法。

当涉及到服务和其他组件(如活动)之间的通信时,绑定服务在大多数情况下被描述为解决方案。但据我所知,绑定服务的使用总是会导致请求/响应模型 - 活动调用服务上的方法(请求)并获得返回值(响应)。android 开发指南将此称为客户端/服务器模型。

在我的场景中,服务会定期生成 POJO 列表,但并不完全可预测(假设每 1.5 - 2 秒)。每次发生这种情况时,都应该将列表转移到一个活动中,以便在屏幕上显示它。在我看来,绑定服务不是这里的解决方案,因为我的场景与请求/响应模型不匹配。事实上,活动是被动的,并没有真正意识到服务。当然,我可以将轮询策略与绑定服务一起使用,但恕我直言,这不是我的最佳方法。

你会推荐什么?我在活动中找到了使用 BroadcastReceiver 的解决方案(服务充当发送者),这是唯一的方法还是有其他方法?还是我对绑定服务的理解有误,它们不仅限于请求/响应场景?

编辑:

正如我已经提到的,服务每 1.5-2 秒生成一个新列表 (java.util),并应立即传递给活动。这样的列表包含 20-25 个代表模型对象的 POJO;它们分别包含 5 个字符串和 3 个整数。只是为了让您感受一下复杂性。

BroadcastReceiver 是否足以满足这种数据量和频率?

4

1 回答 1

0

我想说,与处理程序等其他选项相比,BroadcastReceiver 是最好的方法,当发生大量调用时会产生问题。BroadcastReceiver 将正常工作,因为它的工作流程。我已经解决了这个问题,我得到了很好的结果。

于 2013-09-11T13:20:23.100 回答