小编Sta*_*per的帖子

Jetpack 撰写导航错误:IllegalStateException:组件 NavBackStackEntry 中没有从 INITIALIZED 向下的事件

我在我的应用程序中使用 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)

navigation android admob android-jetpack-compose

8
推荐指数
0
解决办法
789
查看次数