我有一个堆栈项目,我想通过双击后按退出应用程序



如果我有一个堆栈项目,我想通过双击后按退出应用程序,我怎么知道我什么时候会在堆栈上有一个项目? 我在覆盖方法中的代码 onBackPressed

if (getFragmentManager((.getBackStackEntryCount(( == 0( {

super.onBackPressed();
}
else if(getFragmentManager().getBackStackEntryCount()==1){
moveTaskToBack(false);
}
else {
getFragmentManager().popBackStack();
}

这是我的解决方案,您可以按照我在代码中的注释进行操作。

private static final long DURATION_BETWEEN_BACK_PRESS = 1000;
private final Handler handler = new Handler();
private boolean isBackButtonPressed = false;
private final Runnable resetIsBackButtonPressed = new Runnable() {
@Override
public void run() {
isBackButtonPressed = false;
}
};
@Override
public void onBackPressed() {
FragmentManager fragmentManager = getFragmentManager();
int backStackEntryCount = fragmentManager.getBackStackEntryCount();
if (backStackEntryCount == 0) {
// There is no item in back stack. This happens when you do not add any fragment to activity.
super.onBackPressed();
return;
}
if (backStackEntryCount > 1) {
// The back stack has more than one item, just pop top item from the stack.
fragmentManager.popBackStackImmediate();
return;
}
// The back stack has only one item left.
if (!isBackButtonPressed) {
// The first time back button pressed.
isBackButtonPressed = true;
// If users do not press back key second time in a given duration, then just reset back pressed status.
handler.postDelayed(resetIsBackButtonPressed, DURATION_BETWEEN_BACK_PRESS);
} else {
// The second time back button pressed.
handler.removeCallbacks(resetIsBackButtonPressed);
finish();
}
}

相关内容

最新更新