我在尝试在我的应用程序中实现 Admob 时遇到了非常讨厌的错误。我认为问题出在我的代码中,但经过一番调查后,我发现它也出现在 Android-Banner-Essentials 示例中(可在此处下载)。我想知道是否有人遇到过这个问题,或者可能知道如何处理它。
基本上,当应用程序同时禁用状态和标题栏时,它应该使用全屏。Banner Essentials 示例仅在可用区域的最顶部显示 Admob 横幅。我下载了这个例子,只改变了两件事:
- 添加了我的发布商 ID 以正确编译并接收任何广告;)
- 向活动的清单添加了一个参数以禁用标题和状态栏: android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
编译后的二进制文件,无论在什么设备上启动(尝试过 Nexus One、G1、Desire、不同的 Android 版本),都会受到相同问题的影响:
- 显示广告横幅时,按主页,
- 回到主屏幕后,按住主屏幕可查看最近启动的应用程序,
- 选择回 Banner Essentials 应用程序。
我的测试表明,50% 的复制机会 Admob 横幅不会回到它的位置 - 屏幕的最顶部。为了更好地表达我的意思,我准备了三个屏幕截图:
http://img841.imageshack.us/g/correctz.png/
重要通知:
- 当应用程序正常恢复时,banner 会显示在状态栏的正下方,并向上滑动直到与屏幕顶部边框对齐,
- 当出现错误时,横幅根本不动,
- 我无法通过任何其他中断(按返回、电源按钮)重现该问题,
- 我认为它可能以某种方式与获得/失去焦点有关(见截图)。
我的应用程序比 Banner Essentials 复杂一些,所以我开始在我的代码中搜索问题,但没有运气,因此试图尽可能简化情况,结果如下。
有谁知道可能导致问题的原因?也许必须设置一些额外的标志或属性来处理这种行为?