TL; DR: Laut der Dokumentation gibt es zwei verschiedene Möglichkeiten, ein Produkt zu kaufen, welches verwende ich? Benutze ich eine Absicht oder IABHelper.launchPurchaseFlow()
?Soll ich Intents oder Listeners verwenden?
Nach this Dokumentation verwenden launchPurchaseFlow();
und die angeschlossenen Hörer einen Kauf zu tätigen:
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");
Doch nach this Dokumentation muss ich Absichten verwenden und onActivityForResult()
ein Produkt zu kaufen:
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
}
}
}
Mit welcher Methode soll ich das Produkt kaufen? Beide Optionen scheinen sehr ähnlich zu sein, aber was ist der Unterschied und ist einer besser?
Das hängt ganz davon ab, wo Sie den Code wollen zu fließen. Beide sind absolut gültig. –
Beide sind tatsächlich gültig, es hängt meistens von der Präferenz ab. Ich benutze manchmal Listener auf 'Adapter', die nicht in der gleichen Klasse wie das' Fragment' sind, so dass ich das 'Fragment' nicht in den' Adapter' gebe –
@ cricket_007 Können Sie mir ein Szenario vorschlagen, in dem ich eine Option gegenüber der anderen verwenden möchte? Danke für die Antwort. –