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

如何移除已展示的横幅广告,实现IAP购买去广告功能?

实现IAP后移除Google Play横幅广告的解决方案

1. 存储广告移除状态

首先需要持久化保存用户的IAP购买结果,避免应用重启后状态丢失,可直接使用CodenameOne内置的偏好存储能力:
购买IAP成功时执行:
Preferences.set("user_purchased_remove_ads", true);

2. 即时移除已展示的横幅广告

你在添加广告时应该持有了横幅广告组件的实例引用,在IAP购买成功的回调中直接执行移除逻辑即可当场生效:

// adBanner为你之前初始化的横幅广告实例变量
if (adBanner != null && adBanner.getParent() != null) {
    // 从父容器中移除广告组件
    adBanner.getParent().removeComponent(adBanner);
    // 销毁广告实例,释放资源避免内存泄漏
    adBanner.destroy();
    adBanner = null;
    // 刷新当前页面布局
    currentForm.revalidate();
}

3. 后续页面加载逻辑适配

后续应用启动、或者加载任意带广告的页面时,先判断购买状态,若已购买则直接跳过广告初始化逻辑:

boolean hasRemovedAds = Preferences.get("user_purchased_remove_ads", false);
if (!hasRemovedAds) {
    // 原有初始化、加载横幅广告的逻辑放在这里
}

注意事项

  • 若应用内多个页面都配置了横幅广告,需要在每个页面的show()生命周期回调中都增加状态判断,避免遗漏
  • 移除广告后不要再调用任何横幅广告的加载、展示相关方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:15:03