diff --git a/fmapp2/src/com/caf/fmradio/FMRadioService.java b/fmapp2/src/com/caf/fmradio/FMRadioService.java
index 113ea63..03672da 100644
--- a/fmapp2/src/com/caf/fmradio/FMRadioService.java
+++ b/fmapp2/src/com/caf/fmradio/FMRadioService.java
@@ -1996,21 +1996,6 @@
       }
    }
 
-      /* hide the FM Notification */
-   public void stopNotification() {
-      Log.d(LOGTAG,"stopNotification");
-
-      synchronized (mNotificationLock) {
-          Context context = getApplicationContext();
-          NotificationManager notificationManager =
-              (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
-          if((notificationManager != null)
-            && (notificationManager.getNotificationChannel(FMRADIO_NOTIFICATION_CHANNEL) != null)) {
-             notificationManager.deleteNotificationChannel(FMRADIO_NOTIFICATION_CHANNEL);
-          }
-      }
-   }
-
    private void stop() {
       Log.d(LOGTAG,"in stop");
 
@@ -2799,9 +2784,6 @@
            isfmOffFromApplication = true;
        }
 
-       //stop Notification
-       stopNotification();
-
        return fmOff();
    }
   /*
