解决方案 »

  1.   

    我发现我在声明ActivityB时,增加了属性:android:allowTaskReparenting="true"
    若没有这个属性,上面操作到步骤3时,看到的就是ActivityB!
      

  2.   

    可否介绍明白些?哈哈,我还没看出来为什么android:allowTaskReparenting="true"影响到了这个;此外也不觉得和声明周期有什么关系。
    嗯嗯,建议楼主好好学下生命周期把
      

  3.   

    但若ActivityB是另一个apk的界面,上面操作到步骤3时,看到的就是ActivityA。你没看到他的onDestry() 你确定你看到了他的 onStart()?!另一个apk的界面 ,  两个Acitiviy不存在同一个Android project 里面  你是怎么调用的?
      

  4.   

    你点击HOME到达桌面,但是你并没有把进程杀掉,程序并没有关掉,只是在后台运行而已。所以你打开仍然是你最后退出的Activity..
      

  5.   

    这个简单啊,比如另一个apk的包名是:com.android.otherapp,那么在activityA中这样调用:
    intent.setClassName("com.android.otherapp",com.android.otherapp.activityB.class);
      

  6.   

    我查了下资料,应该与affinity和allowTaskReparenting有关。相关要点如下:
    1.  点击launcher时,若没有对应的task,就新建;若有,就将其从background转到foreground。
    2.  task有个类似于“身份证”的东西,就是affinity。在1中,就是根据affinity来判断是否是自身的task的。task的affinity由其back stack的根activity决定,而根activity的affinity继承application的affinity,若都没定义的话则与包名一致。