The app lifecycle stuff applies here, see
code.google.com/android/reference/androi...ml#ActivityLifecycle. If the app is backgrounded then onPause() will have been called, and you'd have hoped battery-draining activities would pause also. If there really is a need for them then the app should be written using the service model and a front end UI app used to control it.
You can can indicate to the system the app is to be killed by calling finish(), but there is no guarantee when it will be released from memory. Of course your app should stop what it is doing when it gets that message and clean up, so the fact its "ghost" lives in Androids memory space for a while is irrelevant.