我应该使用意图还是听众?

时间:2016-08-02 01:48:49

标签: android android-intent onactivityresult

TL; DR:根据文档,有两种不同的购买方式,我使用哪种方式?我是使用意图还是IABHelper.launchPurchaseFlow()

根据this文档,使用launchPurchaseFlow();和附加的聆听者进行购买:

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = 
    new IabHelper.OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result, Purchase purchase)
        {
            //Item bought...? Why should I use this option
        }
};

mHelper.launchPurchaseFlow(this, SKU_GAS, 10001,
       mPurchaseFinishedListener, "bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ");

但是,根据this文档,我必须使用意图和onActivityForResult()来购买产品:

startIntentSenderForResult(pendingIntent.getIntentSender(),
       1001, new Intent(), Integer.valueOf(0), Integer.valueOf(0),
       Integer.valueOf(0));
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1001) {      
        if (resultCode == RESULT_OK) {
            //Item bought...? Why should I use this option
        }
    }
}

我应该使用哪种方法购买产品?这两个选项看起来非常相似,但有什么不同,哪一个更好?

1 个答案:

答案 0 :(得分:0)

没关系。但是,如果我确实使用了监听器,那么IabHelper的launchPurchaseFlow()无论如何都会使用startIntentSenderForResult,它会在完成后调用onActivityResult()。所以即使我使用了监听器,我也需要onActivityForResult,他们在文档中没有提到。这个链接清除了一点:

onIabPurchaseFinished never called.