Android 之 startActivityForResult

一:Android中activity之间的常见跳转实现

1)startActivity(Intent intent);

2)startActivityForResult(Intent intent , int requestCode);

区别在于(2)可以回传数据。如下图:

二:使用说明


startActivityForResult(Intent intent, int requestCode)

启动多个activityA、B、C,可通过requestCode确定区别;


setResult(resultCode);

函数A、B、C返回时,通过resultCode区别;


@Override

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        super.onActivityResult(requestCode, resultCode, data);

    }

通过requestCode和resultCode确定数据;

三:注意事项

onBackPressed()调用setResult();

onDestroy()调用setResult();

对比上图可知onActivityResult会在Activity-B
onPause()函数之后,Activity-A onRestart()函数之前调用。

所以setResult()需要在onPause()函数之前调用,而onStop()或者onDestroy()函数无法回传数据。

四:引申

onStop()和onDestroy()做清理、释放资源的操作,而不应传递数据。

时间: 2024-10-06 07:10:11

Android 之 startActivityForResult的相关文章

简化Android的startActivityForResult调用

一个是解决在onActivityResult 中判断requestCode的问题,第二个是让调用代码的地方就知道我是如何处理对方activity的返回的. 首先我们有一个ResultActivityAdaptor,这个就封装了我的主要的逻辑 public class ResultActivityAdaptor { /** * 起始requestCode,用于兼容有一些老的逻辑,不让request code冲突 */ private final static int REQUEST_CODE_ST

Android的startActivityForResult不起作用

之前startActivityForResult一直用的好好的,今天发现怎么也不起作用.检查后发现有两点影响了. 1.android:launchMode="singleTask",main里设成单例了: 2.startActivityForResult的requestcode须要大于0才干够.

Android的startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回

一.使用场景 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Activity处理.这种带数据的意图跳转需要使用activity的onActivityResult()方法. (1)startActivityForResult(Intent intent, int requestCode);  第一个参数:一个Intent对象,用于携带将跳转至下一个界面中使用的数据

【转】android的startActivityForResult学习心得

http://blog.csdn.net/yanzi1225627/article/details/7800529 从昨晚到现在终于调试通了一个startActivityForResult的例子,网上要么有些说的太复杂了,要么说的含糊,搞的我走了很多弯路,所以写篇心得. 在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,还同时返回一些子模块完成的数据交给主Activity处理.  用startActivity启动主界面是

Android startActivityForResult的使用

Android startActivityForResult的使用 androidbuttonstringclass任务 在Android中startActivityForResult主要作用就是: A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A-Activtiy //看效果 //看代码 [java] view plaincopyprint? package sn.len.actres; import android.a

android layout

***************time:2016.7.12theme:andriod interduce 第一节布局***************************4大组件: activity / server/ broadcastReciver /contentProvider/ <RelativeLayout <TextView ************* ************* /><Button/>/> 5大布局: linearlayout/ rela

Android开发人员不得不收集的代码(不断更新中...)

尺寸相关 dp与px转换 sp与px转换 各种单位转换 在onCreate()即可获取View的宽高 ListView中提前测量View尺寸 手机相关 判断设备是否是手机 获取当前设备的IMIE,需与上面的isPhone一起使用 获取手机状态信息 是否有SD卡 获取MAC地址 获取手机厂商,如Xiaomi 获取手机型号,如MI2SC 跳转至拨号界面 拨打电话 发送短信 获取手机联系人 直接打开手机联系人界面,并获取联系人号码 获取手机短信并保存到xml中 网络相关 打开网络设置界面 判断是否网络

微信小程序开发之数据存储 参数传递 数据缓存

微信小程序开发内测一个月.数据传递的方式很少.经常遇到页面销毁后回传参数的问题,小程序中并没有类似Android的startActivityForResult的方法,也没有类似广播这样的通讯方式,更没有类似eventbus的轮子可用. 现在已知传递参数的方法只找到三种,先总结下.由于正处于内测阶段,文档也不是很稳定,经常修改,目前尚没有人造轮子. 先上GIF: 1.APP.js 我把常用且不会更改的参数放在APP.js的data里面了.在各个page中都可以拿到var app = getApp(

startActivityForResult的用法(Android)

1.第一个页面的activity.java package cn.buaa.z1; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends AppCompatA