首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
关于startActivityForResult()方法,如
[单选题]
关于startActivityForResult()方法,如果A跳转B,B的launchMode属性为singleInstance,A的onActivityResult()回调方法会在什么时候调用呢?
B被启动的时候即调用
B返回的时候调用
下一次A启动的时候调用
不会被调用
查看正确选项
添加笔记
求解答(0)
邀请回答
收藏(70)
分享
纠错
5个回答
添加回答
7
白驹之过隙
选A、B。
Android版本
5.0
之前
,会startActivityForResult直接返回RESULT_CANCEL,选A。
Android版本
5.0之后
则是正常使用,即B finish后回调A中的onActivityForResult ,选B。
编辑于 2022-03-28 11:26:09
回复(0)
1
larrysea
答案是B B返回的时候被调用,因为设置onActivitiyForResult的目的就是当一个activity跳转到另外一个activitiy 去完成某件事之后将返回结果返回前一个调用者,所以返回的时机是什么时候呢,那就是第二activity已经完成任务的时候,那么操作系统默认为当第二个activity结束时,调用返回,所以答案选B。
发表于 2017-01-23 21:35:36
回复(0)
0
诸葛先生
我也觉得这种问题不应该有歧义,所以startactivityforresult就应该返回的时候再回调,所以5.0以后修正了
发表于 2019-07-27 17:18:02
回复(0)
0
牛客6360700号
a,经过实验,singletask和singleinstance都是b开启的时候调用
发表于 2017-02-28 20:29:30
回复(0)
0
桦
答案是A 其实看这种题目就应该质疑它应该不会是正常的答案。 从柯元旦的《Android 内核剖析》的第十章“Ams内部原理“10.1.3中有这样的一段话:请注意:SINGLE_TASK标识以及SINGLE_INSTANCE两个标识必须在r.result==0的条件中,即这两个标识只能用在startActivity()的方法中,而不能使用在startActivityForResult方法中。因为从Task的角度看,Android认为不同Task之间的Activity是不能传递数据的,所以不能使用NEW_TASK标识,但还是要调用forResult方法。
发表于 2017-02-24 10:40:24
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Android
上传者:
牛100
难度:
5条回答
70收藏
1833浏览
热门推荐
相关试题
Android中Looper的实现...
腾讯
百度
2015
Android
iOS工程师
安卓工程师
算法工程师
评论
(44)
来自
腾讯2015春招移动客户...
(Android开发选做)关于Ac...
美团
2013
Android
Java工程师
C++工程师
评论
(8)
来自
美团2013研发笔试卷
android中如何处理耗时操作,...
腾讯
Android
评论
(10)
分页系统的逻辑地址结构是一维的,分...
操作系统
评论
(1)
你说在销售运营这个岗位上会涉及到一...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题