diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/LocationService.java b/app/src/main/java/de/apps4ics/mountainnavigation/LocationService.java index 0fc5c1d..5b0c846 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/LocationService.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/LocationService.java @@ -39,9 +39,6 @@ import com.google.android.gms.location.LocationRequest; import com.google.android.gms.location.LocationServices; -import java.util.Timer; -import java.util.TimerTask; - public class LocationService extends Service implements com.google.android.gms.location.LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { private static final int GPS_MIN_TIME = 5000; @@ -49,9 +46,6 @@ private GoogleApiClient mGoogleApiClient; private LocationRequest mLocationRequest; private LocationUpdateCallback locationCallback; - private int instances; - - private Timer timer; private final IBinder binder = new MyBinder(); @@ -63,26 +57,17 @@ public void onCreate() { super.onCreate(); Log.d(MainActivity.TAG, "Creating..."); - instances = 0; mGoogleApiClient = new GoogleApiClient.Builder(this) .addApi(LocationServices.API) .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .build(); mGoogleApiClient.connect(); - timer = new Timer(); } @Override public int onStartCommand(final Intent intent, int flags, int startId) { Log.d(MainActivity.TAG, "StartCommand..."); - instances++; - timer.scheduleAtFixedRate(new TimerTask() { - @Override - public void run() { - Log.d(MainActivity.TAG, "Starting timer..." + instances); - } - }, 0, GPS_MIN_TIME); return Service.START_STICKY; } diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java index 23e685e..a295b6d 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/MainActivity.java @@ -21,7 +21,9 @@ package de.apps4ics.mountainnavigation; +import android.app.AlarmManager; import android.app.AlertDialog; +import android.app.PendingIntent; import android.content.ComponentName; import android.content.Context; import android.content.DialogInterface; @@ -126,6 +128,7 @@ private static TelephonyManager tm; private static WifiManager wm; private static PowerManager pm; + private static AlarmManager am; private static NetworkInfo activeNetwork; private static int networkStrength; @@ -199,6 +202,7 @@ tm.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_SIGNAL_STRENGTHS); wm = (WifiManager) getSystemService(WIFI_SERVICE); pm = (PowerManager) getSystemService(POWER_SERVICE); + am = (AlarmManager) getSystemService(ALARM_SERVICE); sharedPrefs = PreferenceManager.getDefaultSharedPreferences(MainActivity.this); @@ -955,7 +959,9 @@ weatherHandler = new WeatherHandler(this); Intent service = new Intent(this, LocationService.class); bindService(service, serviceConnection, Context.BIND_AUTO_CREATE); - startService(service); + //startService(service); + PendingIntent pi = PendingIntent.getService(getApplicationContext(), 0, service, PendingIntent.FLAG_CANCEL_CURRENT); + am.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), GPS_MIN_TIME, pi); } @Override diff --git a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java index 6971321..ca5c646 100644 --- a/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java +++ b/app/src/main/java/de/apps4ics/mountainnavigation/handlers/PoiHandler.java @@ -781,6 +781,7 @@ for(int i=0; i dbgps = (ArrayList) MainActivity.getDbHandler().getGeoPointsForPoi(poi.getId(), poi.getType()); + if(dbgps.size() == 0) continue; DbGeoPoint dbgp = dbgps.get(0); GeoPoint gp = new GeoPoint(dbgp.getLat(), dbgp.getLon(), dbgp.getAlt()); String titleText = title;