startActivity()、startActivityForResult()、onActivityResult()有什么联系和区别?

原创 2016年08月29日 10:48:21

1、区别

startActivity:启动activity使用,关闭后不能接受参数

StartActivityForResult:是说明调用这个activity,关闭后可以接收到返回值

onActivityResult:当activity关闭后,如果有返回值,则会在这个方法内接收


2、联系

startActivityForResult()、onActivityResult()这两者是配对使用的,一个是告诉对方有接收值,一个是接收对方的返回值

来个栗子?奋斗

1.跳转的时候不是采用startActivity(intent) 这个方法,而是startActivityForResult(intent, 0)
Intent intent=new Intent();
intent.setClass(A.this, B.class);
Bundle bundle=new Bundle();
String str1="aaaaaa";
bundle.putString("str1", str1);
intent.putExtras(bundle);
startActivityForResult(intent, 0);//这里采用startActivityForResult来做跳转,此处的0为一个依据,可以写其他的值,但一定要>=0
2.重写onActivityResult方法,用来接收B回传的数据。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (resultCode) { //resultCode为回传的标记,我在B中回传的是RESULT_OK
   case RESULT_OK:
    Bundle b=data.getExtras(); //data为B中回传的Intent
    String str=b.getString("str1");//str即为回传的值
    break;
default:
    break;
    }
}
3.在B中回传数据时采用setResult方法,并且之后要调用finish方法。
setResult(RESULT_OK, intent); //intent为A传来的带有Bundle的intent,当然也可以自己定义新的Bundle
finish();//此处一定要调用finish()方法

具体的例子详见:startActivityForResult的详细用法

http://blog.csdn.net/u010566681/article/details/52351105


版权声明:本文为博主原创文章,未经博主允许不得转载。

【小知识点总结】startActivityForResult 和onActivityResult 的用法及【遇到的问题】

利用startActivityForResult 和 onActivityResult在activity间传递数据 AndroidManifest.xml             android:...
  • Jason_996
  • Jason_996
  • 2015年08月24日 17:58
  • 844

activity中 调用startActivityForResult的步骤及生命周期

说明:一个activity需要另一个activity返回结果给其的时候,可以使用startActivityForResult方法 现在有两个activity,分别为ForResultActivity和...
  • u010962131
  • u010962131
  • 2015年08月03日 10:19
  • 3164

笔记19--startActivity、startActivityForResult、Bundle--更新传类对象、集合、类对象集合

1、startActivity:仅仅是跳转到目标页面,若想
  • mwj_88
  • mwj_88
  • 2014年04月11日 17:10
  • 2903

不同Activity之间传递数据--Bundle对象和startActivityForResult方法的实现

首先,由于Activity是Android四大组件之一,如果一个应用程序中包含不止一个Activity,则需要在AndroidManifest.xml文件中进行声明。 例如进行如下的声明(程序中包含...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年02月01日 18:03
  • 2289

Activity的生命周期函数、onActivityResult、intent和启动模式的调用关系

将activity的启动模式和intent传值问题进行了总结和思考
  • cbzcbzcbzcbz
  • cbzcbzcbzcbz
  • 2017年07月25日 11:14
  • 384

使用EventBus代替startActivityForResult向上传递数据

这几天接触了下EventBus,EventBus是一款针对Android优化的发布/订阅事件总线。对于Fragment和Fragment通信,Service和Fragment通信,EventBus是一...
  • My_First_ID
  • My_First_ID
  • 2016年05月05日 16:44
  • 836

Fragment嵌套后,二级fragment onactivityresult失效解决办法

在使用fragment时如果需要和新的activity进行数据交互,通常会想到使用startActivityForResult方法,但是使用过程中发现有时候OnActivityResult方法不会调用...
  • kongxiuqi
  • kongxiuqi
  • 2016年06月07日 15:30
  • 1327

jsp和servlet的区别和联系

jsp和servlet都属于j2ee13规范,servlet是运行在服务端的Java程序,动态生成web内容,但是如果仅仅使用servlet来输出html则是一句一句地输出,为开发和维护带来了极大的不...
  • u011458469
  • u011458469
  • 2015年10月28日 16:19
  • 4150

抽象类和接口的区别与联系

抽象类和接口的区别与联系 什么是抽象类 在面向对象的概念中,所有的对象都是用类来描述的,就是说某一个新的对象是通过实例化一个类而来的,但是,并不是所有的类都是用来描述对象的,也就是说并不是所有的类都可...
  • u010456903
  • u010456903
  • 2015年05月20日 14:58
  • 2088

Session与Cookie的区别与联系

Session与Cookie的区别与联系
  • u014336799
  • u014336799
  • 2015年11月01日 23:58
  • 1645
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:startActivity()、startActivityForResult()、onActivityResult()有什么联系和区别?
举报原因:
原因补充:

(最多只允许输入30个字)