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

如何使用Android Studio在原生代码中为所有Activity添加AdMob横幅广告

你不需要将相同代码逐一添加到每个页面,有两种成熟的实现方案可以完成全局统一添加横幅广告的需求:

方案1:基类Activity封装(适合新手,逻辑清晰易维护)
  • 首先创建通用布局文件activity_base_with_ad.xml,根布局采用垂直方向LinearLayout,上层放一个空的FrameLayout作为业务内容容器,底部固定放置AdMob的AdView广告控件
  • 新建抽象基类BaseAdActivity继承AppCompatActivity,重写setContentView方法:优先加载activity_base_with_ad.xml,再将子类传入的业务布局inflate到前置预留的FrameLayout容器中;同时在基类的onCreate、onPause、onResume、onDestroy生命周期中统一处理AdView的初始化、广告加载、状态同步与资源销毁逻辑
  • 后续所有需要展示广告的Activity都继承BaseAdActivity即可,无需再单独编写广告相关代码,原有业务逻辑和布局也不需要做大幅调整
方案2:全局生命周期监听注入(无侵入,适合已完成大量页面开发的项目)
  • 自定义Application类,在onCreate方法中调用registerActivityLifecycleCallbacks注册全局Activity生命周期监听
  • 重写监听回调的onActivityCreated方法,当每个Activity创建完成后,获取Activity根布局(对应id为android.R.id.content的FrameLayout),动态将AdView添加到布局的顶部/底部位置,同时统一执行广告加载逻辑
  • 配套在onActivityDestroyed回调中销毁对应Activity的AdView实例,避免内存泄漏

该方案不需要修改现有任何Activity的代码,接入成本最低

注意事项
  • 禁止全局复用同一个AdView实例,每个Activity需对应单独的AdView实例,否则会出现View父类附着冲突
  • 可以封装全局统一的广告请求工具类,复用广告请求配置,减少重复请求提升加载效率
  • 需严格按照AdMob要求处理广告的生命周期回调,避免出现展示异常或者平台违规问题

内容的提问来源于stack exchange,提问作者Sun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:48:01