android Activity 之间的跳转

liuyyp 2012-04-22 03:42:21

我从 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 !!!


求帮助啊!!!!!!
...全文
378 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuyyp 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

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


我觉得这样应该比较好!! 因为有些界面不应该频繁的销毁和创建的,比如一个程序的主页面,应该只能唯一一个activity
hotkarriver 2012-04-24
  • 打赏
  • 举报
回复
把Activity-B销毁,就回到Activity-A
sligner 2012-04-24
  • 打赏
  • 举报
回复
建议楼主去看看Activity的四种加载模式,包括对应的intent的四种启动模式,理解acitvity栈中的出入的细节
dontsaymiss 2012-04-24
  • 打赏
  • 举报
回复
你可以在每个activity的每个生命周期都Log一下,然后就知道了
jdxwind 2012-04-24
  • 打赏
  • 举报
回复
那要看下你的MainHallActivity的启动方式了,在AndroidMenifast.xml里,看下你的MainHallActivity的android:lauchmode 设定了什么样的值;
Activity的启动方式有4种,standard(默认), singleTop, singleTask和 singleInstance;可以网上查下他们的区别;
设置singleTask应该可以达到你的要求..
zgzleo 2012-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:

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


我就是不想销毁原来的那个activity(activity-A) ,也是想从第二个activity(activity-B) 跳回到原来的那个activity去。为了实现跳转,我用了startactivity……
[/Quote]

你用startactivity,系统肯定是会生成一个新的Activity的。
你看看Activity的生命周期,你在activity-A中跳到activity-B后,activity-A这会是出于失去焦点的状态,本身并没有销毁。你要从activity-B跳回去,简单的方法就是,在activity-B中调用finish(),此时activity-B就销毁了,而activity-A也自然的重新获得了焦点。
liuyyp 2012-04-23
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

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

我就是不想销毁原来的那个activity(activity-A) ,也是想从第二个activity(activity-B) 跳回到原来的那个activity去。为了实现跳转,我用了startactivity,但是担心会跳到一个新建的activity-A去!!!

你说的那个 “你跳回去,直接把新的Activity销毁掉,他自己就回去了” 我没看明白是什么意思!!
bill_ye 2012-04-22
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
你在跳转到第二个Activity的时候原来的那个本来就是没有销毁的。。。你跳回去,直接把新的Activity销毁掉,他自己就回去了,用finish();
[/Quote]
我用的也是这个方法,确认是有效的!
zgzleo 2012-04-22
  • 打赏
  • 举报
回复
你在跳转到第二个Activity的时候原来的那个本来就是没有销毁的。。。你跳回去,直接把新的Activity销毁掉,他自己就回去了,用finish();

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧