提交工单
咨询集成、功能及报价等问题
产品 / 插件:即时通讯
平台 / 框架:macOS
更新时间:2021-09-09 19:57
由于 macOS 系统上存在 App Nap(App 小憩)的机制,如果一些 App 窗口被置于后台一段时间不用、且窗口完全不可见,macOS 会置为 App 小憩状态。在此状态下,App 的 CPU 等系统资源的占用会受到限制,处于类似于“睡眠”的状态。
在这种情况下,有可能会出现 ZIM 长链接的心跳超时,导致连接断开的情况。
开发者可以通过声明禁用 App Nap 的方式,来防止系统将应用进入小憩状态。
开发者如果需要禁用 App 小憩,只需要在 AppDelegate.m
文件里添加如下代码:
#include <Foundation/NSProcessInfo.h>
#include <Foundation/Foundation.h>
@implementation AppDelegate
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
......
......
NSActivityOptions options = NSActivityUserInitiatedAllowingIdleSystemSleep;
NSString *reason = @"ZIM needs it's network connection. NO NAPPING!";
self.activity = [[NSProcessInfo processInfo] beginActivityWithOptions:options reason:reason];
}
- (void)applicationWillTerminate:(NSNotification *)aNotification {
......
......
[[NSProcessInfo processInfo] endActivity:self.activity];
self.activity = nil;
}
联系我们
文档反馈