1. A method, comprising: tracking one or more geo-fences using a Global Navigation Satellite System (GNSS) hardware processor within a computing device, wherein: the tracking uses at least one GNSS signal; and state changes of the one or more geo-fences during the tracking are saved in a shared state database, the shared state database shared between the GNSS hardware processor and an application processor within the computing device; and upon detecting inability by the GNSS hardware processor to determine location: switching from tracking the one or more geo-fences using the GNSS hardware processor to tracking the one or more geo-fences using the application processor; and after the switching, setting an initial state of each of the one or more geo-fences using states currently stored in the shared state database prior to the switching.