我从 MainHallActivity  中通过:
Intent intent_start_trading = new Intent(MainHallActivity.this,lyyp.study.RSMS.TradingActivity.class);
startActivity(intent_start_trading);创建了一个TradingActivity的窗口显示,之后我又想跳回到原先的那个MainHallActivity  ,于是:Intent intent_return_MainHall = new Intent(TradingActivity.this,lyyp.study.RSMS.MainHallActivity.class);
startActivity(intent_return_MainHall);
这样做的话,我有一个疑问:通过startActivity 来发送Intent 命令实现跳转, 是不是 会创建一个新的MainActivity,而不是跳转到已有的(没有销毁的)那个MainActivity !!!!!!!如果是这样的话,怎么样才能不重复创建 MainActivity !!!
求帮助啊!!!!!!

解决方案 »

  1.   

    你在跳转到第二个Activity的时候原来的那个本来就是没有销毁的你跳回去,直接把新的Activity销毁掉,他自己就回去了,用finish();
      

  2.   


    我就是不想销毁原来的那个activity(activity-A) ,也是想从第二个activity(activity-B) 跳回到原来的那个activity去。为了实现跳转,我用了startactivity,但是担心会跳到一个新建的activity-A去!!!   你说的那个 “你跳回去,直接把新的Activity销毁掉,他自己就回去了”  我没看明白是什么意思!! 
      

  3.   

    把Activity-B销毁,就回到Activity-A
      

  4.   


    你用startactivity,系统肯定是会生成一个新的Activity的。
    你看看Activity的生命周期,你在activity-A中跳到activity-B后,activity-A这会是出于失去焦点的状态,本身并没有销毁。你要从activity-B跳回去,简单的方法就是,在activity-B中调用finish(),此时activity-B就销毁了,而activity-A也自然的重新获得了焦点。
      

  5.   

    那要看下你的MainHallActivity的启动方式了,在AndroidMenifast.xml里,看下你的MainHallActivity的android:lauchmode 设定了什么样的值;
    Activity的启动方式有4种,standard(默认), singleTop, singleTask和 singleInstance;可以网上查下他们的区别;
    设置singleTask应该可以达到你的要求..
      

  6.   

    你可以在每个activity的每个生命周期都Log一下,然后就知道了
      

  7.   

    建议楼主去看看Activity的四种加载模式,包括对应的intent的四种启动模式,理解acitvity栈中的出入的细节
      

  8.   

    我觉得这样应该比较好!!  因为有些界面不应该频繁的销毁和创建的,比如一个程序的主页面,应该只能唯一一个activity