Android应用内结算v3。 onActivityResult

时间:2015-09-02 22:02:03

标签: java android in-app-billing onactivityresult

购买流程推出后,onActivityResult方法需要什么?

来自Trivial Drive示例:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (mHelper == null) return;

    // Pass on the activity result to the helper for handling
    if (!mHelper.handleActivityResult(requestCode, resultCode, data)) {
        // not handled, so handle it ourselves (here's where you'd
        // perform any handling of activity results not related to in-app
        // billing...
        super.onActivityResult(requestCode, resultCode, data);
    }
    else {
        Log.d(TAG, "onActivityResult handled by IABUtil.");
    }
}

"您可以在此处执行任何与应用内结算无关的活动结果处理"

这是否意味着您需要更新用户的广告资源或显示提醒框?如果是这样,我已经在OnConsumeFinishedListener中执行此操作。我已经测试了我的代码,离开了上面的onActivityResult方法,看起来很好。这可能会导致任何问题吗?

或者这是否意味着我必须手动调用购买的SKU的消费方法?

1 个答案:

答案 0 :(得分:1)

如果您不想处理活动中的其他结果,您的代码就可以了。 想象一下例如一项活动。使用startActivityForResult()启动其他活动。 这是处理那些“与应用内结算”结果无关的地方。

但是你应该将代码更改为:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    // Pass on the activity result to the helper for handling
    if (mHelper==null || !mHelper.handleActivityResult(requestCode, resultCode, data)) {
        // not handled, so handle it ourselves (here's where you'd
        // perform any handling of activity results not related to in-app
        // billing...
    }
    else {
        Log.d(TAG, "onActivityResult handled by IABUtil.");
    }
    super.onActivityResult(requestCode, resultCode, data);
}