Rather than idle checking every minute, use userStateChanged and a simple timer design to check only when needed.