在onBillingSetupFinished()事件中,您无法在使用IabHelper对象启动购买流程之前更改UI元素。此是因为onBillingSetupFinished()是在UI线程之外调用的,而任何试图更改UI元素的操作都必须在UI线程中进行。
为了解决此问题,您可以将更改UI元素的操作包装在runOnUiThread()函数中,以确保它们在UI线程中运行。
示例:
//传递Context对象以获取Activity的引用
private void setUpBillingClient(Context context){
BillingClient billingClient = BillingClient.newBuilder(context).setListener(new PurchasesUpdatedListener() {
@Override
public void onPurchasesUpdated(BillingResult billingResult, List
在这里,我们使用了runOnUiThread()函数来确保更改UI元素的操作运行在UI线程中。您可以将所需的更改包含在此函数中,以解决在onBillingSetupFinished()事件中无法调用button setText()的问题。