Android结算 - 如果不是通过按钮点击,如何调用onUpgradeAppButtonClicked()方法?

时间:2013-04-22 18:11:42

标签: android android-billing

我正在为应用创建订阅购买。我原来有这样的事情:

    // 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需要异步设置。从点击按钮调用此方法可能不正确。

但是,如果没有点击按钮,它怎么可能被调用?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为这意味着它需要一些时间,因此您应该异步运行它,因此它不会冻结您的UI。因此,请确保您通过单击按钮调用它,但不能直接调用它。相反,在onUpgradeAppButtonClicked()方法中,执行某些操作以异步方式运行mHelper.launchPurchaseFlow()...,例如使用AsyncTask或单独的Thread等。

着名的Painless Threading Article一如既往地非常方便。