Android:将计算结果从服务转移到活动

时间:2013-09-11 12:55:06

标签: android mobile android-activity android-service

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

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

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

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

修改

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

BroadcastReceiver是否足以满足这一数据和频率的需求?

1 个答案:

答案 0 :(得分:0)

我想说,与其他选项(如处理程序)相比,BroadcastReceiver是最好的方法,当发生大量调用时会产生问题。 BroadcastReceiver会正常工作,因为它的工作流程。我使用过这个,结果很好。