0

アプリのサブスクリプション購入を作成しています。そして、私はもともと次のようなものを持っていました:

    // CREATE THE SUBSCRIBE BUTTON
    Button subscribe = (Button)findViewById(R.id.subscribe);
    subscribe.setOnClickListener(new Button.OnClickListener() 
    {  
      public void onClick(View v) 
      {             
          onUpgradeAppButtonClicked ( );
      }
    });                   

public void onUpgradeAppButtonClicked( ) 
{
    Log.d(TAG, "Buy button clicked; launching purchase flow for upgrade.");
    setWaitScreen(true);
    mHelper.launchPurchaseFlow(this, SKU_SUBSCRIPTION, RC_REQUEST, mPurchaseFinishedListener);
}

しかし、IABHelper を非同期で設定する必要があることを読みました。ボタンのクリックからこのメソッドを呼び出すのは正しくないかもしれません。

しかし、ボタンのクリックによるものではない場合、どのように呼び出されるのでしょうか?

ありがとう!

4

1 に答える 1

1

意図したことは、時間がかかるということだと思います。そのため、非同期で実行して、UI がフリーズしないようにする必要があります。したがって、直接ではなく、ボタンのクリックから呼び出すようにしてください。代わりに、メソッドで、 anまたは a separateなどを使用するなど、非同期でonUpgradeAppButtonClicked()実行するために何かを行います。mHelper.launchPurchaseFlow()...AsyncTaskThread

有名なPainless Threading Articleは、いつものように、これに非常に便利です。

于 2013-04-22T18:21:12.440 に答える