【发布时间】:2018-12-15 02:45:57
【问题描述】:
调用活动代码:
Intent intent = new Intent(MainActivity.this, BuyActivity.class);
startActivityForResult(intent, BuyActivity.BUY_REQUEST_CODE);
调用活动结果处理程序:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d("billing","Got response from buy activity. resultCode = " + requestCode);
if(requestCode== BUY_REUEST_CODE){
boolean buyStatus= data.getBooleanExtra(BuyActivity.BUY_STATUS, false);
if(buyStatus){
Log.d(Constants.APP_TAG,"purchase was successful");
enablePaidFeaturesIfRequired();
}
removeAdsIfRequired();
}
}
调用的活动代码:
Intent data = new Intent();
data.putExtra(BUY_STATUS, false);
Log.d(APP_TAG,"Setting buy activity result to " + RESULT_OK);
BuyActivity.this.setResult(RESULT_OK, data);
finish();
在处理程序中没有得到 RESULT_OK,即使我在日志中看到以下内容
"Setting buy activity result to -1 ";
我得到的结果是 1,即 RESULT_FIRST_USER,
【问题讨论】:
-
您查看的参数有误:
requestCode== RESULT_OK。你的requestCode是BuyActivity.BUY_REQUEST_CODE。你想检查resultCode是否有RESULT_OK。 -
我改变了这一点,不管怎样,第一行的日志语句显示返回结果 1 而不是 -1。 "得到购买活动的响应。resultCode = 1"
-
您是否也更改了日志打印?您的代码显示您正在打印
requestCode,而不是resultCode。 -
啊,这就是问题所在。对于那个很抱歉。现在修好了。
标签: android startactivityforresult