解决方案 »

  1.   

    首先要确定你finish的是不是A,可以打印log查看或者设置断点Debug查看
      

  2.   

    我觉得A肯定没有执行finsh那句话,你是不是把this.startintent放在了finsh的前面啊?
      

  3.   

    可能你的finish语句没有执行,仔细检查一下!
      

  4.   

    楼主在a中建一个静态的~=this,然后再在b中在finish之前先做一次b.~.finish();
    然后就ok了,祝楼主学习顺利,不会的地方请随时联系。
      

  5.   


            Intent intent = new Intent("syncml.intent.action.ABB_SYNC");
            intent.putExtra("fromSetup", true);
            intent.putExtra(AttServerManager.ACTION_FROM, AttServerManager.FROM_EXIST_CUSTOM);
            startActivity(intent);
            finish();我是先start Activity_B, 再finish的。这个地方是否是有问题?
      

  6.   

    哦,你debug看下 startActivity(intent);后会不会执行finish,而且注意规范,acitivty名.this.finish
      

  7.   

    没有执行onDestroy这一点可以肯定。可以先finish 再startActivity吗?会不会造成activity_B启动不了?
      

  8.   


            Intent intent = new Intent("syncml.intent.action.ABB_SYNC");
            intent.putExtra("fromSetup", true);
            intent.putExtra(AttServerManager.ACTION_FROM, AttServerManager.FROM_EXIST_CUSTOM);
            startActivity(intent);
            finish();我是先start Activity_B, 再finish的。这个地方是否是有问题?
    你这里的代码没有问题的,你是在什么时候触发这个事件的呢。
      

  9.   

    这段代码肯定是调用了,否则activity_B也不能启动的。关键是android 在调用activity 的finish的时候,是不是立刻销毁这个activity 对应的界面呢?
      

  10.   

    finish();调用应该完成动作后将activity移出栈,所以在下一个activity按返回就找不到他了、
      

  11.   

    检查一下manifest,是否有自动启动的可能?
      

  12.   

    你的OnDestory应该不会被立即调用吧
      

  13.   

    有没有数据库操作,corsor没有关闭,或者其他的阻塞操作。是acitivity被阻塞?
      

  14.   

    我怀疑你的stack里面 不止一个同样的Activty实例对象,你finished一个以后 后面一个pop上来 误以为没有finished
    你在onPause onStop里面打印一下语句看看有没有执行。
      

  15.   

    加日志跟踪或者把acitivity设置成单列模式试试
      

  16.   

    代码没有问题        之前发现过这样的问题,但原因不是没有 finish掉    而是启动A页面的时候启动了两个,导致了finish 了一个还有一个,原来我也以为是没有生效的,你可以看看是不是会有两个页面的