Android Fragment中初始化AdMob广告的正确方式及初始化次数疑问
AdMob初始化实现问题解答
1. 你的代码实现是否正确?
这段代码语法层面是合法的,能完成AdMob的初始化操作,但从Android开发最佳实践来看,有两处可以优化:
MobileAds.initialize()支持通过回调监听初始化完成状态,建议加上这个逻辑,避免在初始化未完成时加载广告引发异常,示例代码:
@Override public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); MobileAds.initialize(getActivity(), initializationStatus -> { // 初始化完成后再执行广告加载相关逻辑 }); }
- 更推荐将初始化逻辑放在自定义Application类的
onCreate()方法中,而非Fragment的onViewCreated()。因为Application的生命周期是全局唯一且最先启动的,能确保所有页面在使用广告前,AdMob服务已经完成初始化。
2. 是否需要在每个Fragment中重复初始化?
不需要,MobileAds.initialize()只需要全局调用一次就会生效。如果仅在单个Fragment中初始化,当这个Fragment从未被加载过时,AdMob服务就不会被初始化,会导致其他页面的广告无法正常加载。
内容的提问来源于stack exchange,提问作者App Dev
相关产品推荐
相关产品推荐

