2016-08-02 49 views
1

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 
     } 
    } 
} 

我應該使用哪種方法來購買產品?這兩種選擇看起來都非常相似,但有什麼不同,而且更好?

+0

這完全取決於你想要的代碼流向。兩者都完全有效。 –

+0

兩者實際上都是有效的,它主要取決於偏好。我有時在'Adapter'上使用偵聽器,它與'Fragment'不在同一個類中,這樣我就不會將'Fragment'傳遞給'Adapter' –

+0

@ cricket_007你能否給我提供一個場景,我可能想要使用另一個選項?感謝您的迴應。 –

回答

0

沒關係。但是,如果我使用偵聽器,那麼IabHelper的launchPurchaseFlow()將使用startIntentSenderForResult,它在完成時調用onActivityResult()。所以即使我使用監聽器,我也需要onActivityForResult,他們在文檔中沒有提到它。這個鏈接會清除了一點:

onIabPurchaseFinished never called.

相關問題