我正在为应用创建订阅购买。我原来有这样的事情:
// 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需要异步设置。从点击按钮调用此方法可能不正确。
但是,如果没有点击按钮,它怎么可能被调用?
谢谢!
答案 0 :(得分:1)
我认为这意味着它需要一些时间,因此您应该异步运行它,因此它不会冻结您的UI。因此,请确保您通过单击按钮调用它,但不能直接调用它。相反,在onUpgradeAppButtonClicked()
方法中,执行某些操作以异步方式运行mHelper.launchPurchaseFlow()...
,例如使用AsyncTask
或单独的Thread
等。
着名的Painless Threading Article一如既往地非常方便。