当我的应用程序处于后台运行时,我正在使用一些CPU,而我在Logcat收到的唯一消息是来自Adview的典型消息:
"广告不可见。没有刷新添加。从现在起安排广告刷新60000毫秒。"
实际上恰好在之前,所以我添加了代码以暂停时杀死AdView。基本上我的代码已经破坏了Adview,如下所示:
public void onPause() {
if ( adView != null ) {
adView.pause();
adView.destroy();
adView = null;
Log.i(TAG + ": OnPause", "Pausing the Adview");
}
super.onPause();
}
阅读有关此问题的所有相关主题建议执行我在onPause中所做的事情,但它无法正常工作。我知道代码正在通过这段代码,因为Log在LogCat上写了我已经介绍过的消息。
答案 0 :(得分:3)
我认为您只需要adView.pause();
方法中的onPause()
:
@Override
protected void onPause() {
adView.pause();
super.onPause();
}
在adView.resume();
方法中和onResume()
:
@Override
protected void onResume() {
super.onResume();
adView.resume();
}
<强>更新强> 我认为这是一个向谷歌报道的问题: https://groups.google.com/forum/#!topic/google-admob-ads-sdk/jz-ZQh86lm0
答案 1 :(得分:1)
我能够让这个工作。在我的mainactivity中有方法调用如下:
private void checkAdd() {
mAdView = (AdView) findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("8C7A47B9F0F8147BAD75D7DB4C2D026E") // Will your Test device id.
.build();
mAdView.loadAd(adRequest);
}
@Override
protected void onPause() {
mAdView.pause();
super.onPause();
}
@Override
protected void onResume() {
super.onResume();
if(mAdView!=null){ // Check if Adview is not null in case of fist time load.
mAdView.resume();}
}