What is the purpose of using moveTaskToBack() method in android?

The purpose of moveTaskToBack:

http://developer.android.com/reference/android/app/Activity.html

moveTaskToBack(boolean nonRoot)

Move the task containing this activity to the back of the activity stack.

What you could do is:

public void onBackPressed() {
    moveTaskToBack(true); // I don't think you're looking for this.
    new Finalizer().killApp(false); // Neither this.
    super.onBackPressed();
}

Maybe this: Android: Go back to previous activity Something similar in your onBackPressed() after super.OnBackPressed(); Also make sure when you're hitting your back button, you're actually going in this method.


Before i update the code, when i want to close my app in these situations, something unexpected happen to me.

Launch -> isSignIn(yes) -> MainActivity -> Press Back -> Close.


Launch -> isSignIn(no) -> SignInActivity -> Press Back -> Close.


Launch -> isSignIn(yes) -> MainActivity -> Press Sign Out -> SignInActivity -> Press Back -> SignInActivity -> Press Back -> SignInActivity (and so on loop and stuck on SignInActivity until i press history/recent app/home button).


Launch -> isSignIn(no) -> SignInActivity -> Press Sign In -> MainActivity -> Press Sign Out -> SignInActivity -> Press Sign In -> MainActivity -> Press Back -> MainActivity -> Press Back -> MainActivity (and so on loop and stuck on MainActivity until i press history/recent app/home button).

Now i provide this code both on SignInActivity that has Sign In button and MainActivity that has Sign Out button.

@Override
    public void onBackPressed() {
        super.onBackPressed();
        moveTaskToBack(true);
        finish();
    }

It's now working fine on every situations. When i press Back, the application close.


If you call super it triggers the default implementation of back button, which just finishes the current activity. Try removing the line super.onBackPressed(); and then see if the new behavior is what you expect.