我有一个启动代理,用于跟踪用户何时有活动会话。
为实现这一目标,我订阅了NSWorkspaceSessionDidResignActiveNotification
/ NSWorkspaceSessionDidBecomeActiveNotification
次通知,并且他们在大多数时间都做得很好。
但有时候,在快速用户切换期间,当用户回来时都会传递这两个通知,因此我无法猜测用户何时退出会话。当系统缺乏资源时,这种情况经常发生。
如果我运行的应用程序不仅像代理程序一样,而且像终端程序一样,则会重复此行为。流程优先级(nice()
)也没有帮助。
有没有办法解决NSWorkspace
的问题或与其他技术实现相同的行为?