App Open Ad Admob @OnLifecycleEvent(ON_START) deprecated

Viewed 586
2 Answers

I don't know if you solved the problem.

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

And then you can add what you declared as an observer like this.

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

delete this code

  /** 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)
//    }
//  }

and write

  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()
  }
Related