onBackPressed

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zsp_android_com/article/details/85097827

方法

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

API 24源码

/**
 * Called when the activity has detected the user's press of the back
 * key.  The default implementation simply finishes the current activity,
 * but you can override this to do whatever you want.
 */
public void onBackPressed() {
    if (mActionBar != null && mActionBar.collapseActionView()) {
        return;
    }

    if (!mFragments.getFragmentManager().popBackStackImmediate()) {
        finishAfterTransition();
    }
}

说明

Android按BACK键调onBackPressed()(需谨慎),相对finish多一些操作(如Activity状)。onBackPressed首关ActionBar展开菜单(collapseActionView),其次对FragmentManager退栈操作(popBackStackImmediate),末关Activity。低版调finish,高版调finishAfterTransition。Activity于onSaveInstanceState后调onBackPressed报错,活状调无问题。

结论

  • 调onBackPressed()需注意Activity状。
  • 调onBackPressed()不一定结束Activity。
  • 调onBackPressed()后仍终调finish()结束Activity。

注意

重写onBackPressed()不删super.onBackPressed();默关当前Activity。

猜你喜欢

转载自blog.csdn.net/zsp_android_com/article/details/85097827