如何在应用退出后停止显示插页式广告?
Posted
技术标签:
【中文标题】如何在应用退出后停止显示插页式广告?【英文标题】:How to stop interstitial ads showing up after app exit? 【发布时间】:2017-03-08 11:45:53 【问题描述】:我的应用会在应用中显示插页式广告,有时会在应用因网速慢而关闭后显示。在应用关闭后显示插页式广告违反了 admob 规则。如何在应用关闭后阻止插页式广告展示广告??
public class des extends AppCompatActivity
ImageButton imageView15;
InterstitialAd mInterstitialAd;
private InterstitialAd interstitial;
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_des);
AdView mAdView = (AdView) findViewById(R.id.AdView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
// Prepare the Interstitial Ad
interstitial = new InterstitialAd(des.this);
// Insert the Ad Unit ID
interstitial.setAdUnitId(getString(R.string.intertitial_id));
interstitial.loadAd(adRequest);
// Prepare an Interstitial Ad Listener
interstitial.setAdListener(new AdListener()
public void onAdLoaded()
// Call displayInterstitial() function
displayInterstitial();
);
imageView15 = (ImageButton) findViewById(R.id.imageView15);
imageView15.setOnClickListener(new View.OnClickListener()
@Override
public void onClick(View v)
Intent intentLoadNewActivity = new Intent(des.this,vid.class);
startActivity(intentLoadNewActivity);
);
public void displayInterstitial()
// If Ads are loaded, show Interstitial else show nothing.
if (interstitial.isLoaded())
interstitial.show();
【问题讨论】:
【参考方案1】:问题是您在 OnAdLoaded 中显示不建议的添加。这会导致不良行为并在用户执行其他工作时拦截。所以您应该在活动开始时加载您的广告,然后您应该显示它在通过检查是否已加载用户不受影响的时候。 这样,在用户使用完您的应用后,您的广告将不会显示,您的问题将得到解决。
【讨论】:
【参考方案2】:您可以跟踪活动生命周期,然后在展示广告之前检查活动是否正在运行。
创建实例变量:
private boolean isRunning;
跟踪活动生命周期:
@Override
protected void onStart()
super.onStart();
isRunning = true;
@Override
protected void onStop()
super.onStop();
isRunning = false;
在展示广告之前检查活动是否正在运行:
public void displayInterstitial()
// If Ads are loaded and the activity is running, show Interstitial else show nothing.
if (isRunning && interstitial.isLoaded())
interstitial.show();
【讨论】:
宁可使用 onPause 和 onResume 来避免在显示对话框时、在多窗口中以及当应用程序未聚焦时出现无效活动。【参考方案3】:或者,只要您的应用不包含任何服务类,您就可以在用户想要退出您的应用时使用:system.exit(0);
【讨论】:
【参考方案4】:您需要在活动结束或(退出应用程序)时销毁您的广告
试试这个
@Override
public void onDestroy()
super.onDestroy();
if (mInterstitialAd != null)
mInterstitialAd.destroy();
【讨论】:
你能用 onDestroy() 编辑我的 java 代码吗?因为当我尝试它不工作时,destroy 字会变成红色,我不知道如何修复它,我尝试了 alt+enter im new to app development跨度> 需要重写onDestroy()方法快捷键(Ctrl+O) 尝试在没有 if 块的情况下运行 just destroy 方法 mInterstitialAd.destroy() 不存在以上是关于如何在应用退出后停止显示插页式广告?的主要内容,如果未能解决你的问题,请参考以下文章