我有一个ViewPager与2屏幕。您可以滑动浏览这两个片段。 One of the fragments contains ads at the bottom.
AdView如何“加载”广告加载
问题是,当我从广告片段导航到另外一个(广告屏幕不可见现在)ads ARE STILL LOADING!!!!
,这导致一个非常低的点击率,因为它们被装入,但不是用户可见。
下面是控制台的一些贴在广告屏幕是不可见的:
10-29 23:03:32.955: I/Ads(10391): Starting ad request.
10-29 23:03:32.965: I/Ads(10391): Use AdRequest.Builder.addTestDevice("FE742438514BB5FC16E661BDF9966519") to get test ads on this device.
10-29 23:03:32.975: I/Ads(10391): Please set theme of AdActivity to @android:style/Theme.Translucent to enable transparent background interstitial ad.
10-29 23:03:33.566: I/Ads(10391): Ad is not visible. Not refreshing ad.
10-29 23:03:33.566: I/Ads(10391): Scheduling ad refresh 60000 milliseconds from now.
10-29 23:03:34.166: I/Ads(10391): Scheduling ad refresh 55000 milliseconds from now.
10-29 23:03:34.176: I/Ads(10391): Ad finished loading.
10-29 23:03:42.565: I/Ads(10391): Ad is not visible. Not refreshing ad.
10-29 23:03:42.565: I/Ads(10391): Scheduling ad refresh 60000 milliseconds from now.
10-29 23:04:01.553: I/Ads(10391): Ad is not visible. Not refreshing ad.
10-29 23:04:01.553: I/Ads(10391): Scheduling ad refresh 60000 milliseconds from now.
10-29 23:04:29.170: I/Ads(10391): Starting ad request.
10-29 23:04:29.170: I/Ads(10391): Use AdRequest.Builder.addTestDevice("FE742438514BB5FC16E661BDF9966519") to get test ads on this device.
10-29 23:04:29.180: I/Ads(10391): Please set theme of AdActivity to @android:style/Theme.Translucent to enable transparent background interstitial ad.
10-29 23:04:30.491: I/Ads(10391): Scheduling ad refresh 55000 milliseconds from now.
10-29 23:04:30.491: I/Ads(10391): Ad finished loading.
10-29 23:04:33.564: I/Ads(10391): Ad is not visible. Not refreshing ad.
10-29 23:04:33.564: I/Ads(10391): Scheduling ad refresh 60000 milliseconds from now.
10-29 23:04:42.563: I/Ads(10391): Ad is not visible. Not refreshing ad.
10-29 23:04:42.563: I/Ads(10391): Scheduling ad refresh 60000 milliseconds from now.
10-29 23:05:01.552: I/Ads(10391): Ad is not visible. Not refreshing ad.
10-29 23:05:01.562: I/Ads(10391): Scheduling ad refresh 60000 milliseconds from now.
的ViewPage适配器代码:
public class AudioRecPagerAdapter extends FragmentStatePagerAdapter {
private ArrayList<Fragment> registeredFragments = new ArrayList<Fragment>();
public AudioRecPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int index) {
Fragment fg = null;
switch (index) {
case 0:
fg = new RecorderFragment();
break;
case 1:
fg = new PlayerFragment();
break;
default:
break;
}
return fg;
}
@Override
public Object instantiateItem(ViewGroup arg0, int arg1) {
Fragment fg = (Fragment)super.instantiateItem(arg0, arg1);
registeredFragments.add(fg);
return fg;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
registeredFragments.remove(position);
super.destroyItem(container, position, object);
}
@Override
public int getCount() {
return 2;
}
public Fragment getRegisteredFragment(int position){
return registeredFragments.get(position);
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return AudioRecApplication.getInstance().getApplicationContext().getString(R.string.recorder_tab_name);
case 1:
return AudioRecApplication.getInstance().getApplicationContext().getString(R.string.player_tab_name);
default:
return super.getPageTitle(position);
}
}
}
你可以粘贴一些ViewPager代码吗?你用什么作为FragmentPagerAdapter或FragmentStatePagerAdapter的适配器?你有没有尝试在ViewPager上设置setOffscreenPageLimit()? – michaelcarrano 2014-10-29 21:16:14
它是一个FragmentStatePagerAdapter。我没有使用setOffscreenPageLimit()方法,现在我读了它。 – 2014-10-29 21:19:11
我会考虑设置setOffScreenPageLimit()并使用FragmentPagerAdapter,因为您只在ViewPager中使用2个片段。 – michaelcarrano 2014-10-29 21:22:27