【问题标题】:Android service-to-activity communication performanceAndroid 服务到活动的通信性能
【发布时间】:2010-11-28 03:36:18
【问题描述】:

我可以找到几个关于如何构建服务的示例,但是我很难找到一个关于如何在 Activity 和 Service 之间发送消息的工作示例。据我所知,我认为我的选择是使用 Intents、AIDL,或者按照this question 使用服务对象本身。

就我而言,我的活动是唯一可以访问该服务的活动,因此本地服务可以。当活动打开时,我希望看到来自服务的一些状态消息,这些消息将以高达 20 Hz 的频率出现。这些通信方法支持的每秒消息数量是否有任何限制?基本上,哪种方法最适合我的情况?

谢谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    由于您的 Activity 和 Service 是同一个应用程序的一部分,因此无需使用 AIDL。你可以直接use your Service as a local one

    【讨论】:

    • 该页面上的本地服务示例很好地解释了如何创建服务,但它没有显示如何在服务和活动之间进行通信。我可以在本地服务中使用 Messenger 类,如远程 Messenger 服务示例所示吗?
    【解决方案2】:

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

    在 APIDemos 中有一个很好的例子来说明如何做到这一点。

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多