2 qq 38813780 qq_38813780 于 2018.04.16 22:41 提问

安卓onActivityResult未被调用问题

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode== Activity.RESULT_OK) {
if (requestCode == 1 ||requestCode == 2) {
Toast.makeText(this,"成功返回",Toast.LENGTH_SHORT);
System.out.println(" 成功返回 ");
图片说明

                            两个acticity如图  但最后跳转后却没有值
                            ![图片说明](https://img-ask.csdn.net/upload/201804/16/1523889663_393023.png)

6个回答

qq_36629929
qq_36629929   2018.04.17 10:00
已采纳

假设你需要A页面跳转到B页面,B页面执行后将结果返回到A页面。A页面startActivityForResult(intent, 0),再重写onActivityResult接受来自B页面的数据,
B页面调用setResult(RESULT_OK, intent); finish(); 后返回数据,setResult()在源码中是在调用finish()之前才被调用的,所以一定要调用finfish();**

devmiao
devmiao   Ds   Rxr 2018.04.16 23:49
z979451341
z979451341   Rxr 2018.04.17 08:51

Activity A使用startActivityForResult进行跳转到Activity B, Activity B执行了setResult ,但是这个不会立刻回调到Activity A的onActivityResult,只有Activity B被销毁了才会

j7a2son
j7a2son   2018.04.17 09:47

兄弟,界面A跳到,在A中写startActivityforResult(),在B中结束逻辑业务后写setResult(),你的项目结构怎么都写一个文件夹,初学?

weixin_40951087
weixin_40951087   2018.04.17 15:47

A--->B startActivityForRespult(intent,code)
B--->A setResoult(RESULT_OK) inish();

Naide_S
Naide_S   2018.04.21 10:02

AActivity--->startActivityForRespult(intent,code) ----- to---->BActivity
BActivity ---->setResoult(RESULT_OK) ---->BActivity.finish()----->to---->AActivity
AActivity---->onActivityResult----->code 获取数据

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!