我在我的应用程序中使用 admob AppOpenAd,根据他们的要求,我需要仅在没有横幅广告的屏幕顶部展示他们的广告。因此,在显示应用程序打开广告之前,我将用户导航到启动屏幕,显示广告,当用户关闭广告时,我将他重定向回所需的屏幕。
我在这里使用了 admob 文档来识别生命周期事件,并检查用户是否恢复了应用程序: https://developers.google.com/admob/android/app-open ?hl=en#lifecycleobserver
所以当我需要展示广告时,我会这样做:
activity.runOnUiThread { _navController?.navigate(adSplashRoute) }
isShowingAd = true
appOpenAd?.show(activity)
Run Code Online (Sandbox Code Playgroud)
当用户完成添加后,我将他重定向回来:
override fun onAdDismissedFullScreenContent() {
// Called when full screen content is dismissed.
// Set the reference to null so isAdAvailable() returns false.
Log.d(TAG, "Ad dismissed fullscreen content.")
appOpenAd = null
isShowingAd = false
activity.runOnUiThread { _navController?.popBackStack() }
onShowAdCompleteListener.onShowAdComplete()
loadAd(activity)
}
Run Code Online (Sandbox Code Playgroud)
我使用AppOpenAdManager
在 te 类中创建的专用新类MainActivity
并使用以下命令注入它hilt
:
@Inject
lateinit var appOpenManager: AppOpenAdManager
Run Code Online (Sandbox Code Playgroud)
并将其传递给onCreate
内部方法中的可组合项MainActivity
:
setContent {
val …
Run Code Online (Sandbox Code Playgroud)