By default, the Leap Motion service stops sending frames to non-foreground applications. This is to prevent unintended input to your application when the user is interacting with a different application.
To override this, you can set a policy flag to enable background frames:
controller.SetPolicyFlags(Controller.PolicyFlag.POLICYBACKGROUNDFRAMES);
When this is set (and the user hasn't disabled background apps in their Leap Motion control panel) your app will receive background frames when it is in the background and the current foreground application is NOT Leap-enabled.