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

Android从ActivityPolicies关闭重启MainActivity加载Admob广告问题

实现代码修改

不需要额外写跨页面手动关闭Activity的逻辑,直接给重启MainActivity的Intent添加任务栈清理标记即可,系统会自动销毁栈内已存在的旧MainActivity实例,新启动的MainActivity会读取刚写入SharedPreferences的广告偏好配置,加载对应类型的广告。

修改后ActivityPolicies页面的非个性化广告按钮逻辑如下:

public void NonPersonalizedAdvertising(View view) //button
{
    SharedPreferences myPreferences = PreferenceManager.getDefaultSharedPreferences(MensajePoliticas.this);
    SharedPreferences.Editor myEditor =myPreferences.edit();
    myEditor.putString("POLITICAS","LEIDO_NOACEPTADO");
    myEditor.commit();

    // 配置Intent启动标记,清空原有任务栈,销毁旧的MainActivity实例
    Intent entrar=new Intent(this,MainActivity.class);
    entrar.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
    startActivity(entrar);

    finish();  // 关闭当前ActivityPolicies页面
}

这组标记启动新MainActivity时,会直接清空当前应用任务栈里所有现存的Activity实例,旧MainActivity会正常走onDestroy生命周期被回收,不会留内存泄漏问题,不需要改动之前写的MainActivity跳政策页的逻辑,改这几行就满足需求。

Admob合规性说明

这种操作不违反Admob相关规则:

  • 触发重启的原因是用户主动修改了广告隐私偏好,重启是为了加载匹配用户选择的合规广告,属于隐私合规要求下的必要操作,不属于恶意触发的行为
  • 只要不是为了刷广告展示量、诱导用户点击故意频繁触发重启,仅在用户做出隐私选择后执行一次重启重载广告,完全符合Admob的政策要求
  • 重启后按正常逻辑加载广告即可,不要短时间内连续请求多个广告位、不要做广告点击诱导,就不会触发违规判定。

内容的提问来源于stack exchange,提问作者lina0i0-29

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 22:24:31