diff options
-rw-r--r-- | src/com/android/fmradio/FmService.java | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/com/android/fmradio/FmService.java b/src/com/android/fmradio/FmService.java index d197be4..f6e98c3 100644 --- a/src/com/android/fmradio/FmService.java +++ b/src/com/android/fmradio/FmService.java @@ -248,7 +248,14 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan String command = intent.getStringExtra("command"); Log.d(TAG, "onReceive, action = " + action + " / command = " + command); // other app want FM stop, stop FM - if ((SOUND_POWER_DOWN_MSG.equals(action) && CMDPAUSE.equals(command))) { + + if (CMDPAUSE.equals(command)) { + // need remove all messages, make power down will be execute + mFmServiceHandler.removeCallbacksAndMessages(null); + Log.d(TAG, "Stopping FM playback"); + powerDownAsync(); + } else if (SOUND_POWER_DOWN_MSG.equals(action)) { + // phone shut down, so exit FM // need remove all messages, make power down will be execute mFmServiceHandler.removeCallbacksAndMessages(null); exitFm(); @@ -692,6 +699,10 @@ public class FmService extends Service implements FmRecorder.OnRecorderStateChan return true; } + if (mFmRecorder != null) { + stopRecording(); + } + setMute(true); setRds(false); enableFmAudio(false); |