昨晚发现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啊!