I've already developed an app with a lot of geocoding.
My way was to measure the distance between the current location (lat,lon) and the target location.
If you put this into a (background)-task it could solve your problem.
I think the LocationManager and LocationListener class in namespace android.location would be enough for it to track.
If there's no method to calc the distance between those coordinates you could use this code:
public static class Distance
{
// cos(d) = sin(φА)·sin(φB) + cos(φА)·cos(φB)·cos(λА − λB),
// where φА, φB are latitudes and λА, λB are longitudes
// Distance = d * R
public static double DistanceBetweenPlaces(double lon1, double lat1, double lon2, double lat2)
{
double R = 6371; // km
double sLat1 = Math.Sin(Radians(lat1));
double sLat2 = Math.Sin(Radians(lat2));
double cLat1 = Math.Cos(Radians(lat1));
double cLat2 = Math.Cos(Radians(lat2));
double cLon = Math.Cos(Radians(lon1) - Radians(lon2));
double cosD = sLat1 * sLat2 + cLat1 * cLat2 * cLon;
double d = Math.Acos(cosD);
double dist = R * d;
return dist;
}
public static double Radians(double x)
{
return x * PIx / 180;
}
const double PIx = Math.PI;
const double RADIO = 6378.16;
}
Good luck!
Marco