1
私はアプリ内課金プロセッサを実装できました。新しいアクティビティに行くつもりはなく、うまくテストされています。
しかし、顧客が有料コンテンツを支払った後、私は新しい目的が に自動的に実行されるようにして、新しいアクティビティが開始されるようにします(有料コンテンツのアクティビティ)。 しかし、私がこれを行うと、課金プロセッサーを追い越して、課金や支払いをせずに有料の アクティビティに切り替えます。新しいアクティビティを開始する意図を持つボタンを使用する方法を理解しています。ただし、別のボタンが機能しないのは、 もアプリ内課金の簡単な方法です。インテントがアプリ課金でハイジャックしています
このスティッキーウィケットを避けるための提案はありますか?どうもありがとう。はい、これは私の最初のアンドロイドアプリです。私は、あなたが言うことができると確信している...
BillingProcessor bp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
bp = new BillingProcessor(this, "null", this);
Button button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bp.purchase(MainActivity.this, "android.test.purchased");
//THE PROBLEM IS WHAT FOLLOWS: It overtakes .bp
startActivity(new Intent(MainActivity.this, paidstuff.class));
}
});
}
@Override
public void onProductPurchased(@NonNull String productId, @Nullable TransactionDetails details) {
Toast.makeText(this, "You just bought something great!", Toast.LENGTH_SHORT).show();
}
@Override
public void onPurchaseHistoryRestored() {
}
@Override
public void onBillingError(int errorCode, @Nullable Throwable error) {
}
@Override
public void onBillingInitialized() {
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (!bp.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
@Override
public void onDestroy() {
if (bp != null) {
bp.release();
}
super.onDestroy();
}
}