在2个singleTask的Activity之间切换为什么后start的Activity都会创建新实例呢?就是说:
A和B 相互跳转,
A.startActivity(intent)--->B.startActivity(intent)----->A.......
B每次都是新实例化的,singleTask不是在 Task中找已实例化过的Activity么?
我理解错了?求解!

解决方案 »

  1.   

    你从B-->A的时候,是怎么退出的呀。估计你是按的“back"键吧。那样的话,默认下,B就会调用onDestroy方法而销毁了。
      

  2.   


    不是的,A.startActivity(intent)--->B.startActivity(intent)----->A.......
    一直是 startActivity(intent) 走的,并没有finish() 或者 back 了
      

  3.   

    如果A 和B都是singleTask 的activity 是会出现这种情况的。因为singleTask 的activity 都必须在task的底部,假设taskA中有一个activityA(1) 当A(1)->B 会新建一个taskB 把ACTIVITY B 放进去,当 B->A(2)时, 由于当前的TASKB中只有一个activity B ,而最开始的那个A(1)在taskA中故无法重用。所以,会再起一个TASKC 把 ACTIVITY A(2)放进去。不知道解释清楚没。
      

  4.   


    饿, 没有明白 taskA 和 taskB
    为什么他会新建Task呢? 当前模式是 singleTask  就跟他的名字一样是 单例的啊 
    没理解啊.....
      

  5.   

    singleTask 表示这个activity 任何时候都在这个栈的底部。 不是单例的意思。两个activity 都是singleTask 的, 互相startActivity,就只有重新建立新的栈来保证它们都在各自栈的最底部