Activity A与Activity B都设置launchMode为singletask,现在我从Activity A跳转到Activity B,然后在B中捕获BACK按键,startActivity到Activity A,目的是不让Activity B被finish掉,但是发现Activity还是被finish掉了,因为它执行了onDestroy方法。请问有什么办法可以让Activity B不被finish掉,前提是两个launchMode模式都不改变。

解决方案 »

  1.   

    back键系统会做弹栈的操作, 所以当前栈顶的Activity会被Destroy掉.  你捕获Back的onKeyDown也只是进行你自己的一些操作, 而无法阻止系统做的事情, 应该是这样了
      

  2.   

    如果Act1设置为standard,则是正常的,求助啊
      

  3.   

    activity都看不到了,还留着干什么,如果是后台要做的,放到service里最好。
      

  4.   

    不是太理解楼主做法的目的,activity可以在重新显示的时候把数据再载入进来,这样的设计可能更符合android的风格。
      

  5.   

    很明显不是,back键已经拦截并且再次启动A为start方式,这个问题应该是由于A启动B时B仍然在A的任务栈中,所以导致B启动A回到栈底时系统中弹出B已显示A,你试试设置A和B为不同的taskAffinity属性试试。singleTask和Intent.FLAG_NEW_TASK不是一定会新开一个task的,这个你可以看下API说明。