【问题标题】:App Open Ad Admob @OnLifecycleEvent(ON_START) deprecatedApp Open Ad Admob @OnLifecycleEvent(ON_START) 弃用
【发布时间】:2023-02-04 04:15:18
【问题描述】:

这是我们正在关注的例子

https://developers.google.com/admob/android/app-open

在 App Open Ad Admob @OnLifecycleEvent(ON_START) 中使用,但已弃用。我们可以使用什么替代方案以及如何使用它。

【问题讨论】:

    标签: admob


    【解决方案1】:

    我不知道你是否解决了问题。

    private val lifecycleEventObserver = LifecycleEventObserver { source, event ->
        if (event == Lifecycle.Event.ON_START) {
            showAdIfAvailable()
        }
    }
    

    然后你可以像这样添加你声明为观察者的内容。

    ProcessLifecycleOwner.get().lifecycle.addObserver(lifecycleEventObserver)
    

    【讨论】:

      【解决方案2】:

      删除此代码

        /** LifecycleObserver method that shows the app open ad when the app moves to foreground. */
      //  @OnLifecycleEvent(Lifecycle.Event.ON_START)
      //  fun onMoveToForeground() {
      //    // Show the ad (if available) when the app moves to foreground.
      //    currentActivity?.let {
      //      appOpenAdManager.showAdIfAvailable(it)
      //    }
      //  }
      

      和写

        private lateinit var diff: DefaultLifecycleObserver
      
        override fun onCreate() {
          super.onCreate()
          registerActivityLifecycleCallbacks(this)
          MobileAds.initialize(this) {}
          diff = object : DefaultLifecycleObserver {
            override fun onStart(owner: LifecycleOwner) {
              super.onStart(owner)
              currentActivity?.let {
                appOpenAdManager.showAdIfAvailable(it)
              }
            }
          }
          ProcessLifecycleOwner.get().lifecycle.addObserver(diff)
          appOpenAdManager = AppOpenAdManager()
        }
      

      【讨论】:

        【解决方案3】:
        1. 将此添加到您的 build.gradle 依赖项中:
          implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.1'
          
          1. 创建一个新类,例如实现接口“DefaultLifecycleObserver”的 MyLifecycleObserver,然后覆盖 onCreate、onResume 和 ...
          class MyLifecycleObserver: DefaultLifecycleObserver {
              override fun onCreate(owner: LifecycleOwner) {
                  super.onCreate(owner)
                  Log.i("lifecycleEvents", "onCreate")
              }
              override fun onResume(owner: LifecycleOwner) {
                  super.onResume(owner)
                  Log.i("lifecycleEvents","onResume")
              }
          }
          
          1. 在您的 MainActivity 中,只需调用 lifecycle.addObserver() 并传递 MyLifecycleObserver 类的实例。
          lifecycle.addObserver(MyLifecycleObserver())
          

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2023-02-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多