【关于重载OnBackPressed无效的解决方案】
在android的开发中,很多时候我们希望用户在点击手机的返回键时不要结束程序,而是进行我们需要的其他逻辑路径,比如询问用户是否确定退出: 我们知道,在android 1.5之前,需要重载onKeyDown并在该方法中监听KeyEvent.KEYCODE_BACK键盘事件,然后做出相应逻辑操作(具体做法网上很多,bill不再赘述),android 1.5之后,新增了一个独立的监听返回键的方法——onBackPressed(),我们只需在Activity中重载该方法并在其中写上相应逻辑即可。 然而,事情远非我们想象的那么顺利。上述方法通常情况下都能够正常运行,但是当我们在TabActivity的子类中重载onBackPressed方法时,奇怪的事情出现了,我们像往常一样,按下返回键,以为程序会像往常一样,弹出我们设定好的窗口,可结果是,程序终止了,就像从来没有重载过onBackPressed()一样。 于是bill在onBackPressed方法中打上断点,情况如预料的一样,断点从未被激活。奇了怪了,bill百思不得其解,曾一度怀疑onBackPressed方法是否存在bug...