【发布时间】:2016-09-26 12:32:21
【问题描述】:
我只想在返回堆栈为空时退出应用程序。
我的应用程序的一个部分包含一个图库,当单击图片时,会打开一个显示全屏图像的片段。在这个全屏图像中按下后退按钮时,我想回到画廊片段。我通过将片段添加到后堆栈来做到这一点。
但是在应用程序的其他部分,当按下后退按钮时,我想显示一个祝酒词“请再次单击 BACK 退出”。当再次按下返回按钮时,应用程序将关闭。我怎样才能做到这一点?
这是我到目前为止所做的:
boolean doubleBackToExitPressedOnce = false;
@Override
public void onBackPressed() {
if (getFragmentManager().getBackStackEntryCount() > 0 ){
getFragmentManager().popBackStack();
} else {
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
return;
}
this.doubleBackToExitPressedOnce = true;
commonTasks.ShowStringMessage("Please click BACK again to exit");
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce=false;
}
}, 2000);
//super.onBackPressed();
}
}
显然,它没有用。
【问题讨论】:
-
请确认您是否使用 getFragmentManager() 或 getSupportFragmentManager() 将片段添加到后台堆栈
-
@Nitesh:getFragmentManager()。你能帮忙吗?
-
你的代码对我来说看起来不错..你能告诉你按下后退按钮时发生了什么吗?
-
@Nitesh:当我从 fullimage 片段中单击返回按钮时,我并没有回到画廊片段,而是收到了 toast 消息:“请再次单击 BACK 以退出”。我必须从完整的图像片段中点击两次返回按钮才能返回图库。
标签: android android-fragments onbackpressed