1) How to close your own application in Android.
2) My opinion about program termination in Android.
finish(); - this closed activity,but not program (even if none activity left in stack).
moveTaskToBack (true) (documentation on developer.android.com) - it doesn't work as this method is for "move the task containing this activity to the back of the activity stack".
What doesn't work:
This is best way to attempt program to commit suicide :
Read more about killing process here:(http://stackoverflow.com/questions/2092951/how-to-close-android-application). It works more-less .It works,when program is run in once process .If is multiprocess,then thing get more weird.Make sure,that before you Kill app close all stuff that was turn on by your app (like Bluetooth),there was few weird problems mentioned on some forums about it.
Dave Webb and many more people including experts said "The Android OS handles memory management and processes and so on so my advice is just let Android worry about this for you."
Making assumption that It does right is wrong.(It does amazing job,but it struggles in weird cases,which could be avoided)
REMEMBER! I am not a expert but I disagree with these opinions.
I believe,that application should have ability to commit suicide,because..
- It releases resources,that can be used by other application quicker .
- It reduces battery consumption as some 'homeless application' like to work very hard in background
- It prevents Android from panic mode when it stops response or works like turtle due lack of free resources.
I understand ,why any app can be 'killed' any time by OS,but I believe author should have ability to decide,is his application should stays in memory or be wiped out.