アプリを購入しているソフトウェアを開発しています。 私は店舗を作成しましたactivity
、店の唯一の目的は、広告を削除することができます1要素を購入することです。 問題は、ユーザーが既にMainActivity
にアイテムを購入したかどうかを確認するプロセスを実装しているときに発生します。 これは私が、接続処理する方法である。具体的には、私はCheckPurchase
、私は、ユーザーが実際にアイテムを購入したかどうかを確認するために作成したメソッドを呼び出すことを試みた時はいつでも私の問題が発生し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
メソッドが呼び出されます)。
この問題はタイミングが悪いと思われます。 私がそう信じる理由は、MainActivity
のボタンを作成すると、そのメソッドを呼び出す唯一の目的があります(そしてonCreate
メソッドからCheckPurchase
を取り除きます)、メソッドCheckPurchase
が機能し、適切な応答を受け取ります。 私はこの問題が接続をセットアップするのにかかる時間に関係していると思っており、onCreathe
メソッドが速すぎると思います。
接続が完全に設定されるまで待機する方法はあります:以下になりより
私の質問?
接続準備が整っているかどうかを確認するためのコマンドがありますか?
または、単にsomething like thatを使用する必要がありますか?
ご協力いただきありがとうございます。