【发布时间】:2023-02-04 04:15:18
【问题描述】:
这是我们正在关注的例子
https://developers.google.com/admob/android/app-open
在 App Open Ad Admob @OnLifecycleEvent(ON_START) 中使用,但已弃用。我们可以使用什么替代方案以及如何使用它。
【问题讨论】:
标签: admob
这是我们正在关注的例子
https://developers.google.com/admob/android/app-open
在 App Open Ad Admob @OnLifecycleEvent(ON_START) 中使用,但已弃用。我们可以使用什么替代方案以及如何使用它。
【问题讨论】:
标签: admob
我不知道你是否解决了问题。
private val lifecycleEventObserver = LifecycleEventObserver { source, event ->
if (event == Lifecycle.Event.ON_START) {
showAdIfAvailable()
}
}
然后你可以像这样添加你声明为观察者的内容。
ProcessLifecycleOwner.get().lifecycle.addObserver(lifecycleEventObserver)
【讨论】:
删除此代码
/** 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()
}
【讨论】:
implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.5.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") } }
- 在您的 MainActivity 中,只需调用 lifecycle.addObserver() 并传递 MyLifecycleObserver 类的实例。
lifecycle.addObserver(MyLifecycleObserver())
【讨论】: