当用户按下后退按钮时,我的应用程序应先要求用户确认,然后再将应用程序置于后台。
我试图覆盖dispatchKeyEvent
. 问题是我也有片段被推送到 backStack 中。
当后台堆栈中仍有片段时,我不应该要求确认,因为在这种情况下,应用程序不会进入后台:它将从堆栈中弹出片段。
有没有办法区分应用程序何时进入后台和另一个片段何时从堆栈中弹出dispatchKeyEvent
?如果没有,还有其他方法吗?
谢谢
当用户按下后退按钮时,我的应用程序应先要求用户确认,然后再将应用程序置于后台。
我试图覆盖dispatchKeyEvent
. 问题是我也有片段被推送到 backStack 中。
当后台堆栈中仍有片段时,我不应该要求确认,因为在这种情况下,应用程序不会进入后台:它将从堆栈中弹出片段。
有没有办法区分应用程序何时进入后台和另一个片段何时从堆栈中弹出dispatchKeyEvent
?如果没有,还有其他方法吗?
谢谢
您可以覆盖 onBackPressed 方法并从活动管理器获取当前任务的列表,然后决定天气要求用户确认或返回。此处讨论此解决方案。
使用这个Activity的方法
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
// Add here whatever uoy want
}
您可以覆盖
public void onBackPressed() {
super.onBackPressed();
}
并检查您的状况,例如,
public void onBackPressed() {
if(foo == true)
showDialog();
else
super.onBackPressed();
}
只需覆盖 onBackPressed。
此外,请参阅http://developer.android.com/guide/components/tasks-and-back-stack.html以更好地理解 android 中的 backstack 概念