2016-08-02 11 views
1

TL; DR:ドキュメントによれば、私は使用する製品を購入する2つの異なる方法がありますか?インテントまたはIABHelper.launchPurchaseFlow()を使用しますか?インテントまたはリスナーを使用する必要がありますか?

thisドキュメント、購入を作るためにlaunchPurchaseFlow();と付属のリスナーを使用によると:しかし、thisマニュアルに従って、私は製品を購入するための意図やonActivityForResult()を使用する必要があります

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"); 

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

どちらも実際には有効ですが、ほとんどの設定に依存しています。 'Fragment'と同じクラスにない' Adapter'のリスナーを使用して 'Fragment'を' Adapter'に渡さないことがあります –

+0

@ cricket_007もう1つのオプションを使用する場合のシナリオを教えてください。応答していただきありがとうございます。 –

答えて

0

問題ではありません。しかし、リスナーを使用すると、IabHelperのlaunchPurchaseFlow()はstartIntentSenderForResultを使用しますが、終了したらonActivityResult()を呼び出します。したがって、リスナーを使用してもonActivityForResultが必要ですが、ドキュメントでは触れていません。このリンクは少しそれをクリア:

onIabPurchaseFinished never called.

関連する問題