经过 startActivity(Intent) 方法启动 Activity,启动后的两个 Activity 之间相互独立,没有任何的关联。但一般状况下,须要后启动的 Activity 关闭时返回信息给先前启动的 Activity 。后启动的称为“子Activity”,先启动的称为“父Activity”。java
以 Sub-Activity 方式启动子Activity,须要调用 startActivityForResult(Intent,requestCode) 函数ide
int SUBACTIVITY1 = 1; Intent intent = new Intent(MainActivity.this,SubActivity1.class); startActivityForResult(intent, SUBACTIVITY1);
int SUBACTIVITY1 = 1; Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("https://my.oschina.net/zhangyujian/blog")); startActivityForResult(intent,SUBACTIVITY1);
Uri data = Uri.parse("tel:"+tel_number); Intent result = new Intent(null,data); // putExtra 用于附加额外信息 result.putExtra("address","SWUST"); setResult(RESULT_OK,result); finish();
说明:子Activity 调用 finish() 函数关闭以前,调用 setResult() 函数设定须要返回给 父Activity 的数据函数
private static int SUBACTIVITY1 = 1; private static int SUBACTIVITY2 = 2; @Override public void onActivityResult(int requestCode, int resultCode, Intent data){ super.onActivityResult(requestCode, resultCode, data); switch(requestCode){ case SUBACTIVITY1: if(resultCode == RESULT_OK){ Uri uriData = data.getData(); //响应操做,经过textView查看返回值 textView.setText(uriData.toString()); }else if(resultCode == RESULT_CANCELED) {} break; case SUBACTIVITY2: if(resultCode == RESULT_OK){ Uri uriData = data.getData(); //响应操做,经过textView查看返回值 textView.setText(uriData.toString()); }else if(resultCode == RESULT_CANCELED) {} break; } }
说明:重载 onActivityResult() 函数实现this
经过简单的监听事件加关键代码便可验证功能。spa