2010-11-28 68 views
4

我可以找到几个如何构建服务的示例,但我很难找到如何在活动和服务之间发送消息的工作示例。根据我的发现,我认为我的选择是使用Intents,AIDL,或者根据this question使用服务对象本身。Android服务间活动通信性能​​

在我的情况下,我的活动是唯一可以访问服务的活动,所以本地服务可以。当活动开放时,我希望看到服务中的一些状态消息,它将以高达20 Hz的频率进入。这些通信方法支持的每秒消息数有限制吗?基本上,哪种方法最适合我的情况?

谢谢。

回答

4

由于您的Actvity和Service是同一个应用程序的一部分,因此无需使用AIDL。您可能只需use your Service as a local one

+0

该页面上的本地服务示例在解释如何创建服务方面做得很好,但没有说明如何在服务和活动之间进行通信。我可以在本地服务中使用Messenger类,如远程Messenger服务示例节目吗? – 2010-11-28 17:06:41

1

该限制只受设备性能的影响。每秒请求没有上限。 通常情况下,涉及上下文切换,使用相当多的cpu(与传输的其他部分相比),但由于您使用本地服务,因此您不会受此影响。无论如何,20Hz不是问题。 最好的解决方案是使用AIDL,并设置服务可以调用的回调来报告其状态。

在APIDemos中有很好的例子。