我正在开发一款应用程序购买软件。 我创建了一个商店activity
,该商店的唯一目的是购买1个元素,允许您删除广告。 当我执行检查用户是否已购买MainActivity
中的项目的过程时,会出现问题。 这是我如何处理连接:Android:如何检查与商店的连接是否已准备就绪
IInAppBillingService mService;
ServiceConnection mServiceConn = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mService = IInAppBillingService.Stub.asInterface(service);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar myToolbar = (Toolbar) findViewById(R.id.calculator_toobar);
setSupportActionBar(myToolbar);
//Opening a connection with the store
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE);
//Some more code...
CheckPurchase();
}
更具体地说我的问题,每当我试图打电话CheckPurchase
出现,我创建检查用户是否确实买了项目的方法。 在商店活动中,此方法完美地工作,因此我确信这不是该方法的问题(在按下按钮时调用CheckPurchase
方法的商店中)。
我认为这个问题是由不好的时机造成的。 我之所以这样认为的原因是因为:当我在MainActivity
中创建一个按钮,该按钮的唯一目的是调用该方法(并且我从onCreate
方法中删除CheckPurchase
),则方法CheckPurchase
有效,并且我收到了正确的响应。 我认为问题与建立连接所用的时间有关,并且onCreathe
方法太快。
我的问题比变为:
有没有办法等到连接完全建立?
是否有某种命令可用来检查连接是否准备就绪并设置?
或者我应该简单地使用something like that?
在此先感谢您的帮助。