استاد من یه اپ دارم مینویسم که یک اکتیوتی داره وبقیه صفحات فرگمنت هستند. توی این اپ میخام پرداخت درون برنامه ای پیاده کنم.همه چیز اوکی هست و مشکلی نیست منتها زمانی که میخوایم کاربر خرید بکنه از دستور
iabHelper.launchPurchaseFlow
استفاده میشه که جواب خرید برمیگرده به onactivityresult اکتیویتی
من اگر یک iabHelper استاتیک توی اکتیویتی بسازم میتونم اون رو توی ondestroy اکتیویتی dispose بکنم منتها عملا تا وقتی برنامه باز هست اکتیویتی ما بسته نمیشه که این کد اجرا بشه و ممکنه از لحاظ بهینگی اپ رو دچار مشکل بکنه.
چطور این مشکل رو حلش کنم؟یعنی iabHelper رو حتی توی فرگمنت هم بسازم جواب به onactivityresult اکتیویتی برمیگرده
پس مشکل استاتیک اینه که dispose کردنش توی ondestroy اکتیویتی اتفاق میفته که عملا تا وقتی برنامه باز هست اجرا نمیشه واگر استاتیک تعریف نکنم و توی فرگمنت تعریف بکنم میتونیم dispose کنیم ولی جواب توی onactivityresult اکتیویتی برمیگرده و اون موقه از توی اکتیویتی به iabHelper ی که توی فرگمنت تعریف کردم دسترسی ندارم ونمیتونم دستور زیر رو اجرا کنم
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if(requestCode==1001){ iabHelper.handleActivityResult(requestCode,resultCode,data) }else{ super.onActivityResult(requestCode, resultCode, data) } }