admob interstitial,viewpager和page rotation bug?

时间:2014-10-04 13:24:26

标签: android admob

我有一个应用程序,其中包含一个托管ViewPager的Activity。

ViewPager有几个片段。

其中一个片段由gridView组成。

点击gridItem时,我会启动一项活动来显示Admob插页式广告。

这有效,但似乎有一个错误:如果我在显示插页式广告时旋转设备,会创建并显示第二个插页式广告活动吗?

我尝试从FragmentStatePagerAdapter更改为FragmentPagerAdapter,但这没有任何改变。

伪代码:

1)在MainActivity中:

Main Activity :: onCreate:
    viewPager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()))

public class MyPagerAdapter extends FragmentStatePagerAdapter { ... }  

2)在Fragment中包含gridView:

public class MyFragment extends Fragment {

    gridView.setOnItemClickListener(itemClickListener);

}

AdapterView.OnItemClickListener itemClickListener = new AdapterView.OnItemClickListener() {
    @Override 
    public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
        Intent intent = new Intent(getActivity(), AdmobInterstitial.class);
        startActivityForResult(intent, 0);
    }
};

@Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.d(TAG, "onActivityResult " + requestCode + " - " + resultCode);
        // do other stuff
    }

1 个答案:

答案 0 :(得分:0)

您的问题可能会发生,因为您正在启动自己的活动,从中显示插页式广告。我怀疑发生的事情是您的活动的意图在您旋转时排队并部分处理(包括显示非页内广告)。这意味着它将在轮换后重新安排,导致非页内广告再次显示。

解决方案:

  1. 直接从您的第一个活动中显示插页式广告。即没有专门展示插页式广告的活动。
  2. 检查您的第二个活动的代码,找出导致插页式广告重新显示的原因。