Hello,
You have set a broadcast receiver in the Manifest. This means that your service will restart each time a new SMS is received.
The solution could be to save the wanted state for your service and load it each time the service is started. If it should be in stop mode so, the service would kill itself by calling StopService("") and if it should be active, it will continue to execute and after that stop itself.
So, in the Activity, your Button should manage the saving of the desired behavior.