在Activity A中 激活进入B
int RESULT_OK=250;
Intent intent = new Intent();//第二个参数直接指定要跳转执行的Activeintent.setClass(A.this,B.class);//第二个参数0无特别意义
 startActivityForResult(intent,0);//在A中覆盖方法onActivityResult,用于监听B返回的信息
onActivityResult(int RequestCode,int resultCode ,Intent data){
  swith(resultCode){
    case RESULT_OK:
    //做你爱做的事
  }
}
==================================
在B类中有个事件 ,例如按钮,暂停事件 用来返回A Activeint RESULT_OK=250;
onClick(){
 B.this.setResult(RESULT_OK,intent);//返回A.ctive
 B.this.finish();结束进程B
}==============
另外重要的别忘了,在AndroidManifest.xml
添加主 android:name=".A"
<activity android:name="B>
================================
当然还有一种方法
上面演示的是直接kill掉B active
如果需求是 暂停B回到A呢?然后从A回到B呢?重新加载B的业务和数据--就是另种方法了。嘿嘿

解决方案 »

  1.   

    谢谢luobobaobao的回复。
    我的activity B不是主动结束的,不是由于在B上的UI事件而让B关闭,而是由网络底层的消息上来传给A,A要立即绘制dialog,但此时被B给盖住了,所以得kill掉B而显示A,但B是根本不知情的。
      

  2.   

    我用如下的方法时,程序会崩掉(提示:has leaked window ): 
    Intent intent = new Intent("com.king.stock.action.A"); //自己激活自己 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent); 
    showDialog(); //立即显示一个dialog信息
    其实以上的这个方法为什么程序会崩溃,原因是在activity A重新激活的时候进行了绘制。所以所绘制dialog的代码必须放到A激活(onRsume())之后,这样倒是可以,就是显示太过麻烦。
      

  3.   

    我不是做应用开发的,但是我记得SDK GUIDE里面有一章专门说到了对Activity Task的操作,关键是你如何来定义Activity的Task属性,你去查一下,肯定能找到答案的~~
      

  4.   

    首先 我觉得框架有点乱。获取网络信息,一般都是单开一条线程来做的,到得到信息之后,这个时候需要B消失A出现。
    在B中有一个Hnadler能接受消息,网络线程就向这个主UI线程的Handler发一个消息过去,销毁自己
    并且启动A。
      

  5.   


    把B结束掉,倒是在A接收到网络消息之后可以直接可以做:
    Intent intent = new Intent("com.king.stock.action.A"); //自己激活自己 
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(intent);只是我在想,怎么样在自己激活后立即显示一个dialog.
      

  6.   

    如果一个Activity存在也在堆栈的最上面,这个时候去启动它,会调用他的OnNewIntent方法。
      

  7.   

    Activity 和管理,真的不大明白