OnActivityResult返回空数据

问题描述

我知道这个问题已经问了很多遍了,我正确地遵循了所有步骤,但是在我的FirstApplication中仍然获取空数据

FirstApplication开始使用Mainactivity从库类中获取结果,该方法是使用构造函数中的activity变量初始化的:

 sendIntent.putExtra("data",bundle);
    sendIntent.setType("text/plain");
    sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    if (sendIntent.resolveActivity(context.getPackageManager()) != null) {
        activity.startActivityForResult(sendIntent,requestCode);
    }

SecondApplication获得意图并进行必要的操作

        Intent intent = getIntent();

    Bundle bundle = intent.getBundleExtra("data");

    if (bundle!=null){


        type = bundle.getString("type");

        num1 = Integer.parseInt(bundle.getString("num1"));
        num2 = Integer.parseInt(bundle.getString("num2"));


        if (type.equalsIgnoreCase("add")){

            result = String.valueOf(num1+num2);


        }else {

            result = String.valueOf(num1-num2);

        }

    }

将结果发送到FirstApplication

    Bundle bundle1 = new Bundle();

    if (bundle1!=null){

        Intent send = new Intent();

        bundle1.putString("result",result);
        send.putExtra("datasend",bundle1);
        setResult(Activity.RESULT_OK,send);
        finish();

    }

在FirstApplication MAinActivity中接收结果

    @Override
protected void onActivityResult(int requestCode,int resultCode,Intent data) {
    if (requestCode == REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            Bundle bundle = data.getBundleExtra("datasend");
            result = bundle.getString("result");

        }
    } else {
        super.onActivityResult(requestCode,resultCode,data);
    }
}

但是在这里我正在接收resultCode 0和数据null。任何帮助将不胜感激。谢谢。

解决方法

问题出在这一行

sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

通过调用Intent.FLAG_ACTIVITY_NEW_TASK,您将第二个活动设置在后堆栈的顶部,并取消startActivityForResult()的影响

因此应将其删除以获取结果

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...