سلام دوستان
من کد پرداخت درون برنامه ای رو گذاشتم رو ACTION_UP یک تصویرم، وقتی میخواد عکس رو بکشه اینور یا اونور
به این صورت:

Boolean userData = settings.getBoolean("paid", false);
if(!userData){
if (mHelper != null) {
mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, "payload-string");
}
}



این کد برای بار اولی که میاد ACTION_UP بشه فورس میده، ولی برای بار دوم یا سوم مشکلی نداره!!!
حالا کلک رشتی سرش زدم و گذاشتمش توی try/catch یعنی گفتم:


Boolean userData = settings.getBoolean("paid", false);
if(!userData){
if (mHelper != null) {
try {
mHelper.launchPurchaseFlow(this, SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, "payload-string");
}
catch(IllegalStateException ex){
Toast.makeText(this, "Please retry in a few seconds.", Toast.LENGTH_SHORT).show();
}
}
}


برای بار اول میره توی catch و پیام میده، برای دفعات بعد مشکلی نیست و پرداخت میاد...

ضمنا ارروری هم که به ازای فورس شدن میده اینه:

java.lang.IllegalStateException: Can't start async operation (launchPurchaseFlow) because another async operation(launchPurchaseFlow) is in progress.


کسی میتونه راهنمایی کنه منو که چرا بار اول کدام میره توی catch ???
ممنون از همه