从外部应用程序Andriod获取onActivityResult

问题描述

我的App1启动App2:

case R.id.launch_button: {
  try {
       Intent intent = getPackageManager().getLaunchIntentForPackage("com.app1");
       intent.putExtra("Price",getAmount());
       intent.putExtra("Description",getProductId());
       startActivityForResult(intent,PAYMENT_REQUEST);
      } catch (ActivityNotFoundException e) {
        e.printstacktrace();
        Log.i(TAG,"Activity not found" );
        }
        break;
    }

App2完成处理后,应返回RESULT_OKRESULT_CANCELED

@Override
    protected void onActivityResult(int requestCode,int resultCode,Intent data) {
        super.onActivityResult(requestCode,resultCode,data);
        Log.i(TAG,"onActivityResult " + requestCode + " " + resultCode + " " + data);
        if (requestCode == PAYMENT_REQUEST) {
            if (resultCode == Activity.RESULT_OK) {
                Toast.makeText(this,"Payment success",Toast.LENGTH_LONG).show();
            }
            if (resultCode == Activity.RESULT_CANCELED) {
                Toast.makeText(this,"Payment fail",Toast.LENGTH_LONG).show();
            }
        }
    }

但是RESULT_CANCELED会在App2启动时立即出现。 为什么在App2启动之前都收到RESULT_CANCELED?我在做什么错了?

App2返回结果代码

@Override
public void onPaymentSuccess() {
    activity.setResult(Activity.RESULT_OK);
    activity.finish();
}
@Override
public void onPaymentFail() {
    activity.setResult(Activity.RESULT_CANCELED);
    activity.finish();
}

App2完成后,我也没有收到任何结果。

注意:App2使用片段

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)