首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >何时对activateSession对象调用WCSession ()

何时对activateSession对象调用WCSession ()
EN

Stack Overflow用户
提问于 2015-10-16 10:37:23
回答 1查看 1.4K关注 0票数 5

我想知道在什么时候可以在手表上和activateSession设备上调用WCSession对象上的WCSession()。

文件中说:

在调用任何与会话相关的方法之前,始终分配委托并激活会话。在发送消息或获取有关连接状态的信息之前,必须对会话进行配置和激活。

一开始我想把我的代码用于初始化会话:

代码语言:javascript
复制
 if (WCSession.isSupported()) {
        session = WCSession.defaultSession()
        session.delegate = self
        session.activateSession()
    }

viewDidLoad在iOS设备上,在willActivate在手表侧。

起作用了..。但我不认为这是个好办法。我还不太熟悉应用程序的生命周期,但据我所知,每次打开应用程序时,都会调用这些程序。

这会导致每次打开一个应用程序时出现“重新连接”吗?

哪里是放置代码的好地方?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-16 11:58:58

当您将WCSession代码放入viewDidLoadwillActivate中时,不仅会在打开应用程序时调用,而且每次都会显示包含该代码的视图控制器。所以那不是个理想的地方。

将这段代码放在应用程序的AppDelegate中的AppDelegate和手表扩展的ExtensionDelegate中的applicationDidFinishLaunching中是最好的地方

您可以将所有会话处理都放在一个单例类中,正如这个伟大的教程@NatashaTheRobot所建议的那样。

这样,会话只在应用程序被保存在内存中的时间内创建一次。

编辑

正如克詹森在他的评论中指出的那样,如果您使用连接进行克詹森Glance更新,则必须在ExtensionDelegate的init方法中激活会话。在这种情况下不会调用applicationDidFinishLaunching

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33168416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档