Abort Ping Thread on Destroy

Bug: 10855683
Change-Id: I01939c16c091ed1ebcf9a1c9a77524c3c40cf8ab
diff --git a/src/com/android/exchange/service/EmailSyncAdapterService.java b/src/com/android/exchange/service/EmailSyncAdapterService.java
index 964755c..70e91a9 100644
--- a/src/com/android/exchange/service/EmailSyncAdapterService.java
+++ b/src/com/android/exchange/service/EmailSyncAdapterService.java
@@ -467,6 +467,7 @@
 
     @Override
     public void onCreate() {
+        LogUtils.i(TAG, "onCreate()");
         super.onCreate();
         // Restart push for all accounts that need it.
         new RestartPingsTask(getContentResolver(), mSyncHandlerMap).executeOnExecutor(
@@ -474,6 +475,17 @@
     }
 
     @Override
+    public void onDestroy() {
+        LogUtils.i(TAG, "onDestroy()");
+        super.onDestroy();
+        for (PingTask task : mSyncHandlerMap.mPingHandlers.values()) {
+            if (task != null) {
+                task.stop();
+            }
+        }
+    }
+
+    @Override
     public IBinder onBind(Intent intent) {
         if (intent.getAction().equals(Eas.EXCHANGE_SERVICE_INTENT_ACTION)) {
             return mBinder;