问题
I am using moveTaskToBack() method in my activity.
When I am pressing back button the activity still is visible. The back key does not work. What did I do wrong here? I want to navigate back to the previous activity.
public void onBackPressed() {
// TODO Auto-generated method stub
moveTaskToBack(true);
new Finalizer().killApp(false);
super.onBackPressed();
}
回答1:
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() {
// TODO Auto-generated method stub
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.
回答2:
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.
回答3:
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 onSignInActivityuntil 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 onMainActivityuntil 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.
来源:https://stackoverflow.com/questions/13197281/what-is-the-purpose-of-using-movetasktoback-method-in-android