条件: 现在有一个Tabhost,有四个选项卡(A,B,C,D)每个选项卡使用Activity来填充,默认打开选项卡A。 重现步骤: 当进入系统后,直接选择选项卡D,然后按下回退键,填充D选项卡的Activity没有回调用自己的finish方法和 onKeyDown方法,直接触发了TabHost的finish方法和onKeyDown方法,虽然不是每次进入系统都出现这个问题,但是重现的概率较高,正常情况下,会先调用填充D选项卡的Activity的finish方法和onKeyDown方法,然后触发TabHost的finish方法和onKeyDown方法。如果切换一下选项卡,问题也会消失。 请高手指导一下,如果可以请指导一下规避方法,谢谢! 

解决方案 »

  1.   

    我以前的公司有同事在android 1.5的时候做过类似的实验,当时叫sub-activity, 后来被google采纳了,被称为Frament, 建议参考之~
      

  2.   

    重写onKey方法,然后处理back事件手动去调用
      

  3.   

    to ahphone/shangzhaoyang:Fragment只是一个碎片,如果使用它填充选项卡,代价太大,整个项目都要重写了。这个问题并不是必现的,不清楚为什么有时候按屏幕上的回退键时,没有调用重写的finish和onKeyDown方法?
      

  4.   

    实在不行,可以试试ActivityGroup