現在、絶賛?キャンペーン中ですかね。
アプリ起動時広告は、アプリの読み込み画面を収益化することを望むパブリッシャー様を対象とした広告フォーマットです。この広告は、ユーザーがアプリをフォアグラウンドに移動すると表示され、いつでも閉じることができます。
👉 アプリ起動時広告 | Android | Google Developers
眺めてましたよ、おぼつかないサンプルコードを。
複数のコールバックたちに苦しみながらサンプルコードを容赦なく大幅改変していく様子が、API設計の難しさを表してると思います。
今回は、
「アプリがフォアグラウンド(可視状態)になったら何らかの処理をする。」
というやつ関連を抽出しておきます。
class MyApplication : Application(), Application.ActivityLifecycleCallbacks, LifecycleObserver {
override fun onCreate() {
super.onCreate()
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun onMoveToForeground() {
// Show the ad (if available) when the app moves to foreground.
// do something
}
Deprecated なのを置き換えて、継承から外します。
ProcessLifecycleOwner.get().lifecycle.addObserver(
object : DefaultLifecycleObserver {
override fun onStart(owner: LifecycleOwner) {
// do something
}
}
)
DefaultLifecycleObserver や LifecycleEventObserver の使い方 https://t.co/w37Kn4vBRI #AndroidDev #kotlin #プログラミング初心者
— chanzmao (@maochanz) February 28, 2022
便利ですねこれ。
あと、
「アプリがフォアグラウンド(可視状態)かどうか。」
というやつ。
val foreground: Boolean
get() = ProcessLifecycleOwner.get().lifecycle.currentState.isAtLeast(Lifecycle.State.RESUMED)
ここは、「RESUMED」でいいのか知らんが、試せばいいか。