You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Application类中registerActivityLifecycleCallbacks未执行导致开屏广告无法展示的解决求助

Application类中registerActivityLifecycleCallbacks未执行导致开屏广告无法展示的解决求助

各位大佬,我最近碰到一个棘手的问题:我需要从远程配置里获取广告网络的偏好设置,然后根据这个值给用户展示开屏广告,但把逻辑放在Application类里的时候,广告完全不显示。

我的Application类onCreate方法里的代码是这样的:

@Override
public void onCreate() {
    super.onCreate();

    if (AdNetworkFirebaseConfig.isAppLovin()) {
        appOpenAppLovinCallback(); // Show Applovin ads
    } else {
        Log.e("AdNetworkConfig", "Showing ads...");
        appOpenAppCallback(); // Show ads
    }
});

我发现如果不在Activity生命周期相关的逻辑里执行,整个广告加载流程就直接跳过了,设备上根本看不到广告。特别是我实现的appOpenApplovinCallback方法,里面注册的ActivityLifecycleCallbacks完全没被触发,连onActivityCreated里的日志都打不出来:

private void appOpenApplovinCallback() {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        registerActivityLifecycleCallbacks(new Application.ActivityLifecycleCallbacks() {

            // 根本没有走到这里的逻辑
            @Override
            public void onActivityCreated(@NonNull Activity activity, @Nullable Bundle bundle) {
                Log.e("activity name", activity.toString());
            }

            @Override
            public void onActivityStarted(Activity activity) {
                if (++activityReferences == 1 && !isActivityChangingConfigurations) {
                    // App enters foreground
                    loadAppOpenAdandShowAd();
                }
            }

            @Override
            public void onActivityResumed(Activity activity) {
            }

            @Override
            public void onActivityPaused(Activity activity) {
            }

            @Override
            public void onActivityStopped(Activity activity) {
                isActivityChangingConfigurations = activity.isChangingConfigurations();
                if (--activityReferences == 0 && !isActivityChangingConfigurations) {
                    // App enters background
                    onEnterBackground();
                }
            }

            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
            }

            @Override
            public void onActivityDestroyed(Activity activity) {
            }
        });
    }
}

有没有大佬能帮我看看问题出在哪?为什么Application里注册的生命周期回调没执行,导致开屏广告没法展示?

备注:内容来源于stack exchange,提问作者sejn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:40:29