GPS start up is not an instant process. The receiver basically has to know the position of each of the GPS satellites in the constellation in order to calculate it's location
Are you first checking if there is a last known location which you can use? Most apps first check for it and then search for a location.