From c1f649fc8357861e02747e085d992a94449e469c Mon Sep 17 00:00:00 2001 From: Sandor Dornbush Date: Fri, 18 Feb 2011 16:12:49 -0800 Subject: [PATCH] Remove strict mode violation from onLocationChanged --- .../services/TrackRecordingService.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java index d6571b1aa..12f66f2ae 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/TrackRecordingService.java @@ -62,6 +62,8 @@ import android.util.Log; import java.util.Timer; import java.util.TimerTask; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; /** * A background service that registers a location listener and records track @@ -187,6 +189,8 @@ public class TrackRecordingService extends Service implements LocationListener { */ private int announcementFrequency = -1; + private ExecutorService executerServce; + /* * Utility functions */ @@ -477,9 +481,18 @@ public class TrackRecordingService extends Service implements LocationListener { /* * Location listener implementation: ================================= */ - @Override - public void onLocationChanged(Location location) { + public void onLocationChanged(final Location location) { + this.executerServce.submit( + new Runnable() { + @Override + public void run() { + onLocationChangedAsync(location); + } + }); + } + + private void onLocationChangedAsync(Location location) { Log.d(MyTracksConstants.TAG, "TrackRecordingService.onLocationChanged"); try { @@ -675,6 +688,7 @@ public class TrackRecordingService extends Service implements LocationListener { prefManager.setRecordingTrack(recordingTrackId = -1); } showNotification(); + executerServce = Executors.newSingleThreadExecutor(); } /**