From the activity lifecycle you should be getting Activity_Pause called when your activity goes into the background. You don't mention whether you see this.
Explains the activity lifecycle in detail, including the lifecycle paradigm and each of the callbacks: what happens internally while they execute and what you need to implement during them.
You apparently have more than one activity in your app which could make things a little confusing. Are you starting Main from DeliverySignature.Activity_Create?
What is your definition of 'restart'. Activieis in an app can be destroyed and recreated while the process is still running. Starter service is only closed when the entire process is killed.