读书人

昨夜发现Android 多activity跳转时的一

发布时间: 2012-09-08 10:48:07 作者: rapoo

昨晚发现Android 多activity跳转时的一个bug

情况 是这样的,有一个主界面MainActivity,里面有两个按钮:mButton1, mButton2.按下去之后分别跳转到Activity1和Activity2.在Activity1里有一个按钮mButton3,跳转至Activity3,采用的是有返回值的跳转方式。在Activity3设置按键,满足一定条件时会跳到Activity1,同时传信息给Activity1. 从Activity1在Activity3时跳转良好!Activity3里,跳转到Activity1的代码片段:

clickOk = true;Intent backIntent = new Intent(Activity3.this,  Activity1.class);Bundle bundle = new Bundle();bundle.putString("send", f0.getAbsolutePath());backIntent.putExtras(bundle);Activity3.this.setResult(0, backIntent);                   Activity3.this.finish(); 

后来,我开发Activity2,当时粗心大意,未对Activity3做修改,就绑定了Activity3.(注意:在Activity3里返回的时候,关联的是Activity1. ) 但当Activity2和Activity3关联之后,Activity3满足触发条件后,竟然能正常的返回Activity2。太奇怪了!

Activity3里 返回Intent的设置里,是往Activity1里跳转的。我现在就纳闷,在Activity3原封不动情况下,Activity2和Activity3 建立intent跳转关系后, Activity3怎么就跳转到Activity2了???

近期会提供源码,欢迎大家讨论、测试,欢迎大神指点。

1楼su1216昨天 10:12
这个intent是datandata The data to propagate back to the originating activityn返回给之前的activity的,你做的并不是所谓的关联nn在onActivityResult(int requestCode, int resultCode, Intent data)中,这里接收之前的intent
Re: yanzi1225627昨天 11:41
回复su1216 恩 是啊 这个我知道!但是Activity3里 返回Intent的设置里,是往Activity1里跳转的。 n我现在就纳闷,在Activity3原封不动情况下,Activity2和Activity3 建立intent跳转关系后, Activity3怎么就跳转到Activity2了???
Re: su1216昨天 11:48
回复yanzi1225627nActivity3.this.setResult(0, backIntent); n你这不是作为data传给之前的activity吗n你用activity2打开3,返回的也应该是2阿
Re: yanzi1225627昨天 11:53
回复su1216nbackintent的申明是这啊:nIntent backIntent = new Intent(Activity3.this, Activity1.class); n往Activity1啊!

读书人网 >Android

热点推荐