Android App-Open Example

In the example below, a full-screen ad is displayed when the app is launched or foregrounded.

class DemoApplication :
    Application(),
    Application.ActivityLifecycleCallbacks,
    DefaultLifecycleObserver {

    private var currentActivity: Activity? = null

    private var ad = FuseFullScreenAdView(this, "<zone_code>").apply {
        listener = object : FuseFullScreenAdViewListener {
            override fun onEvent(
                adView: FuseFullScreenAdView,
                event: FuseAdViewEvent,
            ) {
                FuseLoggingUtil.d("The full-screen ad event: $event")
            }
        }
    }

    override fun onCreate() {
        super<Application>.onCreate()

        registerActivityLifecycleCallbacks(this)

        ProcessLifecycleOwner.get().lifecycle.addObserver(this)
    }

    override fun onStart(owner: LifecycleOwner) {
        super.onStart(owner)
        // Show the ad (if available) when the app moves to foreground
        currentActivity?.let {
            ad?.show(it, 1000)
        }
    }

    // ActivityLifecycleCallback methods
    override fun onActivityCreated(activity: Activity, savedInstanceState: Bundle?) {}

    override fun onActivityStarted(activity: Activity) {
        // Updating the currentActivity only when an ad is not showing
        if (activity !is AdActivity) {
            currentActivity = activity
        }
    }

    override fun onActivityResumed(activity: Activity) {}

    override fun onActivityPaused(activity: Activity) {}

    override fun onActivityStopped(activity: Activity) {}

    override fun onActivitySaveInstanceState(activity: Activity, outState: Bundle) {}

    override fun onActivityDestroyed(activity: Activity) {}
}