17:高级篇 - 访问 CTK 服务的最佳方式
Posted 一去丶二三里
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17:高级篇 - 访问 CTK 服务的最佳方式相关的知识,希望对你有一定的参考价值。
作者: 一去、二三里
个人微信号: iwaleon
微信公众号: 高效程序员
访问服务的方式
在使用 CTK 时,必须始终将服务认为是动态的、不稳定的,轻轻地我来了,轻轻地我又走了。。。服务可能随时消失,或变得不可用!所以,在访问服务时,建议使用以下几种方式。
- 最原始的方式
服务可能随时失败,为了以防万一,有必要在使用之前加上判断条件。
- 使用 ServiceListener
利用 ctkPluginContext::connectServiceListener()
,可以动态感知所有 service 的注册和注销。若要监听某一个特定的服务,可以通过添加 filter 来进行过滤。
- 使用 ctkServiceTracker
ctkServiceTracker 提供了更加有效的监听 service 的方式,使得对 service 的获取更加简洁,同时也解决了不能监听到已存在 service 的问题。
下面,以 LogService 为例来分别看看这几种用法。
糟糕的方式
来看一下比较糟糕的、但却很常见的代码:
ctkServiceReference reference = context-><
以上是关于17:高级篇 - 访问 CTK 服务的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章
13:高级篇 - CTK 事件管理机制(signal/slot)