users become impatient if they don't think some task is being carried out or has completed. moving your network code to a service doesn't necessarily change that perception. the service allows the main activity to continue without freezing, but the user will not know what's happening in the service. you would still, eg, have to consume the back key. you need to invoke a progress message ("sending. almost done...") or show a little message before and after sending the email to let the user know what the deal is. you see this in real life all the time: "don't press this button again", "please wait", etc).