setupInterstitialAdTimer() launches a new data.adJob without cancelling the existing one. Normally onAppBackground() cancels it first, but two onAppForeground() calls without an intervening background spawn a second timer coroutine, so interstitials can fire too often. Cancel the previous job before relaunching.
setupInterstitialAdTimer()launches a newdata.adJobwithout cancelling the existing one. NormallyonAppBackground()cancels it first, but twoonAppForeground()calls without an intervening background spawn a second timer coroutine, so interstitials can fire too often. Cancel the previous job before relaunching.