【问题标题】:OnActivityResult() returning null dataOnActivityResult() 返回空数据
【发布时间】:2020-10-04 04:59:01
【问题描述】:

我知道这个问题已经被问过很多次了,我正确地执行了所有步骤,但在我的 FirstApplication 中仍然得到空数据

FirstApplication 开始使用 Mainactivity 从库类获取结果的意图,该 Mainactivity 使用构造函数中的活动变量进行初始化:

 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。任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: java android android-activity onactivityresult


    【解决方案1】:

    问题出在这一行

    sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    

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

    所以应该删除它以获取结果

    【讨论】:

      猜你喜欢
      • 2013-07-23
      • 2011-08-26
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多