我正在尝试将新的 OS X 10.9 (Mavericks) 方法beginActivityWithOptions
方法添加到 FireMonkey (Delphi XE2) 中的NSProcessInfo
接口 ( TNSProcessInfo
)。
该功能似乎有效。它返回一个对象,但是,它不会为应用程序禁用 App Nap。我正在使用 Activity Monitor 的 Energy 选项卡来监控 App Nap 状态。
我已将以下代码添加到Macapi.Foundation.pas
:
const
NSActivityBackground = 255;
NSActivityIdleSystemSleepDisabled = 1048576;
NSActivityUserInitiated = NSActivityIdleSystemSleepDisabled or 16777215;
NSActivityLatencyCritical = 1095216660480;
type
NSActivityOptions = UInt64;
NSProcessInfo = interface(NSObject)
['{B96935F6-3809-4A49-AD4F-CBBAB0F2C961}']
...
// Added following
function beginActivityWithOptions(options: NSActivityOptions; reason: NSString): NSObject; cdecl;
...
end;
我这样称呼它:
var
obj: NSObject;
reason: NSString;
options: NSActivityOptions;
begin
reason := NSSTR('...');
options := NSActivityUserInitiated or NSActivityLatencyCritical;
obj := TNSProcessInfo.Wrap(TNSProcessInfo.OCClass.processInfo).beginActivityWithOptions(options, reason);
end;
我已经尝试了选项标志的各种组合,它并没有禁用 App Nap。有任何想法吗?你觉得我的实现有什么问题吗?