软件一运行起来,先是一个主Activity显示一张图片。然后用startActivity(Intent intent)方法打开另一个Activity。我想在这个Activity中让用户按返回键后,不返回到前一个Activity,而是弹出一个对话框,提示软件是否关闭。
这里有两个问题:
1.截取返回按键事件,屏蔽返回行为。只需要在程序里加入这段就好
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
//这里写你要在用户按下返回键同时执行的动作
moveTaskToBack(false); //核心代码:屏蔽返回行为
return true;
}
return super.onKeyDown(keyCode, event);
}
再在A的onResume()方法中加入
flag++;
if(flag>=2)
finish();
要直接跳转,要不然B中的moveTaskToBack(false)不起作用的,一定要记住,不信自己试试,这就是Android变态之处,害我一晚上)。在B中调用finish(),Activity栈中B被弹走,只剩A,又执行A,这时,先从A的onResume开始执行,故i再次自增为2,满足条件,A也被finish()了,至此Acitivity栈为空,程序结束。(这段时间极短,屏幕上根本看不到A,效果就是从B直接关掉了整个程序)