Por fín el tema solucionado, al menos esta parte.
En public class GPSLocation extends AsyncTask<String, Integer, String> {
…………
protected String doInBackground(String... params) {
Looper.prepare();
try {
latitud="0";
longitud="0";
gps = new GPSTracker(AndroidGPSTrackingActivity.this);
// check if GPS enabled
if(gps.canGetLocation()){
latitud=String.valueOf(gps.getLatitude());
longitud=String.valueOf(gps.getLongitude());
}
}catch (Exception e) {
}
return null;
}
protected void onPostExecute(String result) {
gps = new GPSTracker(AndroidGPSTrackingActivity.this);
progressDialog.cancel();
if(longitud !="0" && latitud !="0"){
longi.setText(longitud);
lati.setText(latitud);
} else {
gps.showSettingsAlert();
}
}