Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OnActivityResult()返回空数据_Java_Android_Android Activity_Onactivityresult - Fatal编程技术网

Java OnActivityResult()返回空数据

Java OnActivityResult()返回空数据,java,android,android-activity,onactivityresult,Java,Android,Android Activity,Onactivityresult,我知道这个问题已经被问过很多次了,我正确地遵循了所有步骤,但是在我的第一个应用程序中仍然得到了空数据 Bundle bundle1 = new Bundle(); if (bundle1!=null){ Intent send = new Intent(); bundle1.putString("result", result); send.putExtra("datasend", bu

我知道这个问题已经被问过很多次了,我正确地遵循了所有步骤,但是在我的第一个应用程序中仍然得到了空数据

    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从库类获取结果,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);
    }
第二个应用程序获得目的并执行必要的操作

        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);

        }

    }
将结果发送到第一个应用程序

    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);
    }
}

但在这里,我收到的是结果代码0和数据null。任何帮助都将不胜感激。谢谢。

问题出在这一行

sendIntent.setFlags(Intent.FLAG\u活动\u新任务);
通过调用
Intent.FLAG\u ACTIVITY\u NEW\u TASK
可以将第二个活动设置在后台堆栈的顶部,并取消
startActivityForResult()的效果。

因此,应该删除它以恢复结果