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。因此,请确保您会通过单击按钮而不是直接调用它。相反,在你的onUpgradeAppButtonClicked()方法中,做一些mHelper.launchPurchaseFlow()...异步运行的事情,比如使用一个AsyncTask或一个单独的Thread等等。

著名的无痛穿线文章一如既往地非常方便。

于 2013-04-22T18:21:12.440 回答