最简单的比方,我现在有3个activity,分别是A,B,C,A通过startactivityforresult启动B,B通过startactivityforresult启动C,现在在C里面执行setresult后执行finish,然后B里面的onActivityResult函数在收到C里面设置的result值后也执行setresult然后finish,这样的逻辑下去应该到A里的onActivityResult函数了。
现在我遇到的问题很奇怪,我在C到B的过程是正常的,但是在B到A的过程中突然出现A执行ondestory方法,然后执行oncreate方法然后到onActivityResult这个方法,我很奇怪为什么要先ondestory再oncreate?如果是内存不够回收了的话怎么回收了A再创建A呢?正常的程序节奏应该是onrestart然后onstart,然后onresume(因为在B和C时A没有结束,只是stop了),而且这个奇怪的生命周期还不是每次都这样,在低端机器上基本是这个流程,在内存768的机器上不会出现这种奇怪的现象,现在我想请问知道的大侠,在低端机上,我怎么不让他执行ondestory再create?还有就是低端机上出现这种奇怪的流程的原因是什么?

解决方案 »

  1.   

    你的各个Activity的启动方式是什么?
      

  2.   

    a--》b
    Intent intent = new Intent(a.this,b.class);
    startActivityForResult(intent, TOSETTING);b--》c
    Intent intent = new Intent(b, c.class);
    startActivityForResult(intent, 1);
      

  3.   

    我问的是你的launchmode,在activity中定义的
      

  4.   

    a是程序的主入口函数,是单例模式 signaltask
      

  5.   

    a是程序的主入口函数,是单例模式 signaltask
      

  6.   

    singtask,a可以设成这个模式.b,c就设置成standard