我有一个应用程序,其中包含一个托管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
}
答案 0 :(得分:0)
您的问题可能会发生,因为您正在启动自己的活动,从中显示插页式广告。我怀疑发生的事情是您的活动的意图在您旋转时排队并部分处理(包括显示非页内广告)。这意味着它将在轮换后重新安排,导致非页内广告再次显示。
解决方案: