17:高级篇 - 访问 CTK 服务的最佳方式

作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员

访问服务的方式

在使用 CTK 时,必须始终将服务认为是动态的、不稳定的,轻轻地我来了,轻轻地我又走了。。。服务可能随时消失,或变得不可用!所以,在访问服务时,建议使用以下几种方式。

  • 最原始的方式

服务可能随时失败,为了以防万一,有必要在使用之前加上判断条件。

  • 使用 ServiceListener

利用 ctkPluginContext::connectServiceListener(),可以动态感知所有 service 的注册和注销。若要监听某一个特定的服务,可以通过添加 filter 来进行过滤。

  • 使用 ctkServiceTracker

ctkServiceTracker 提供了更加有效的监听 service 的方式,使得对 service 的获取更加简洁,同时也解决了不能监听到已存在 service 的问题。

下面,以 LogService 为例来分别看看这几种用法。

糟糕的方式

来看一下比较糟糕的、但却很常见的代码:

ctkServiceReference reference = context

猜你喜欢

转载自blog.csdn.net/u011012932/article/details/103612915