an IntentService
is killed in between requests.
When you are registering your receiver in the service you never unregister it, so you "leak it"
Move your receiver into your Activity
, register in onResume
and unregister in onPause
.
Then every time your register receives a broadcast send an intent to your Service
http://developer.android.com/reference/android/content/BroadcastReceiver.html
Note: If registering a receiver in your Activity.onResume() implementation, you should unregister it in Activity.onPause(). (You won't receive intents when paused, and this will cut down on unnecessary system overhead). Do not unregister in Activity.onSaveInstanceState(), because this won't be called if the user moves back in the history stack.