以前开发的时候一直犯的错误,今天通过一些调研记录下来。
假定由AActivity来startActivityForResult到BActivity。
1.一般我们都会在BActivity设置setResult返回AActivity,所以我们可能会想当然的觉得,就因为我们setResult了,所以,才得以跳转到AActivity,今天写了个例子,如果BActivity没有setResult,而是直接finish,照样会进入AActivity,当然,是在AActivity的launchMode不为singleInstance,BActivity不为singleTask或singleInstance的前提下。
2.如果AActivity的launchMode为singleInstance,BActivity的launchMode为singleTask或singleInstance的情况下,AActivity startActivityForResult以后,会直接调用AActivity 的onActivityResult,为什么会这样呢,跟launchMode有关,可以去网上找找singleInstance和singleTask的区别,他们都是在activity栈中只存在一份实例,但是区别就是singleInstance一条实例独霸整个activity栈,startActivityForResult是在当前栈中寻找目标Activity的,如果目标Activity不在本Acitivity栈中,就会出现startActivityForResult后直接进入onActivityResult。随便举几个例子,如果AActivity startActivityForResult,而BActivity的launchMode是singleTask或者是singleInstance,此时BActivity就在一个新的activity栈中,AActivity在startActivityForResult以后在本activity栈中找不到BActivity,此时就会直接进入AActivity的onActivityResult,如果BActivity的launchMode为stardand呢?BActivity就会与AActivity在同一个activity栈中,流程就会是AActivity.startActivityForResult->BActivity->AActivity.onActivityResult。其他情况举一反三。
相关推荐
一种 startActivityForResult 更简单流程
NULL 博文链接:https://duduli.iteye.com/blog/1422558
startActivityForResult过时.md
主要介绍了Android startActivityForResult实例详解的相关资料,需要的朋友可以参考下
android startActivityForResult的使用方法介绍,需要的朋友可以参考一下
主要介绍了 Android startActivityForResult和setResult的区别的相关资料,希望通过本文能帮助大家理解这部分内容,需要的朋友可以参考下
本篇文章是对android中的startActivityForResult进行了详细的分析介绍,需要的朋友参考下
Android之Intent通过startActivityForResult方法启动新Activity
主要给大家介绍了Android中startActivityForResult()的用法,文中给出了详细的介绍与示例代码,相信对大家的理解和学习具有一定参考借鉴价值,有需要的朋友们下面来一起看看吧。
使用startActivityForResult回传数据
介绍了StartActivityForResult的运用,并总结了一些问题及答案,可供初学者参考,代码无误,放心运行!
基于RxPermissions框架思想,在使用startActivityForResult可以不重写onActivityResult回调
StartActivityForResultHelper 一个轻巧的,用于解耦startActivityForResult方法的库
很多时间我们需要的不仅只是startActivity或是finish,而是在finish的时候,把在第二个界面的值回传给第一个界面。这个程序就是用来解决这样的问题的。
startActivityForResult
3个方法的介绍和使用 startActivityForResult(Intent intent, int requestCode ) onActivityResult(int requestCode ,int resultCode, Intent data) setResult(int resultCode,intent intent)
主要介绍了android开发教程之startActivityForResult使用方法,需要的朋友可以参考下