I created an android application with a logout option in onCreateOptionsMenu
. The Logout works perfectly but when I press the back button again it takes me to t
To Finish an Activity I'm using this code:
public void appExit () {
this.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} //close method
or kill Process with this code:
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
android.os.Process.killProcess(android.os.Process.myUid());
I think this is better. How about it ?
For API 21 and up
finishAndRemoveTask()
You can call this to close the app completely. All activities will finish()
and the app is removed from the task list.
For Xamarin Users:
int pid = Android.OS.Process.MyPid();
Android.OS.Process.KillProcess(pid);
put it in your OnDestroy()
function.
Edit:
After investigating it thoroughly, I found out that even the above code I wrote does not "Kill" the app totally (deleting it from task manager - "recent apps"). Eventually, after a lot of code tryouts, I managed to figure something out, Overriding "Finish" functions with this code:
public override void Finish()
{
if (Android.OS.Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
base.FinishAndRemoveTask();
}
else
{
base.Finish();
}
}
this is the sole solution for that question!
To Quit Application
on Button click use this code :
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
Try it..
To kill the complete app and remove it from Running
app list kill the app through its pid
(its nasty)... use this lines before above code.
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
If you want to close application completely you should use finishAffinity();
instead of finish()
.
It will clear all stack of activities previously opened by an application.