比如从A跳转到B,然后等待从B回传数据:
那么在A中这样跳转:
startActivityForResult(intent, 100);
后面那个requestCode要大于0;
然后在A中重写这个方法:
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.e("onActivityResult", "onActivityResult"); //可以根据多个请求代码来作相应的操作 if(20==resultCode) {} }
在B中使用:
Intent intent=new Intent(); intent.putExtras(bundle); setResult(20, intent);
那么A中的onActivityResult在什么时候会被调用呢?跟踪发现,会在B调用finish()的时候,比如,你按了返回键,或者显示调用finish()等,也是销毁的时候。