从 AdMob 加载新广告的“最佳时机”是什么时候?
我正在编写一个购物清单应用程序,它的主屏幕上有一个 admob 横幅。
首先我打电话
m_AdView.loadAd(new AdRequest());
在 onCreate() 方法中。但所以我总是得到相同的广告。
现在我想将调用放入 onResume()。但是没有机会造成过多的网络流量吗?
加载的最佳位置adMob
是在onCreate()
. 所以,我会把它留在onCreate()
方法中。不要担心正在显示什么广告,因为它是 adMob api 告诉它显示的内容。它可能处于测试模式,所以当你“实时”运行它时,它会改变。您收到广告的事实意味着它正在发挥作用。
这是我对我的应用程序所做的:
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
this.setContentView(R.layout.detail);
AdView adView = (AdView)this.findViewById(R.id.adView2);
AdRequest re = new AdRequest();
adView.loadAd(re);
...
官方文档告诉将 loadAd() 放入 onCreate(),因为您还必须在清单中注册 AdActivity:
<activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode"/>
我猜它会坚持你的主要活动的生命周期,因此正确处理 onPause() 和 onResume() 。
编辑
根据admob 示例,您必须将生命周期调用委托给 AdView 实例。
想知道相同的(谈论横幅而不是插页式)
我在网上找到的大多数示例都将请求(adView.loadAd(new AdRequest())
)加载到onCreate
.
但可以是onStart
:
public void onStart() {
super.onStart();
if(adView != null) {
adView.loadAd(new AdRequest());
}
根据: AdMob 广告在 onCreate 可以,但是如果你返回活动就消失了,为什么?
在Activity生命周期中,OnStart
紧随其后被调用onCreate
https://developer.android.com/guide/components/activities/activity-lifecycle.html
所以...我的东西听起来也不错