gpt4 book ai didi

android - Android 上的 Admob - 恢复 Activity 时未覆盖状态栏区域

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:15:34 25 4
gpt4 key购买 nike

我在尝试在我的应用程序中实现 Admob 时遇到了非常严重的错误应用。我以为问题出在我的代码中,但经过一番调查后我发现它也存在于 Android-Banner-Essentials 示例中(可供下载 here)。我想知道是否有人遇到过这个问题或者知道如何处理与它。

基本上,当应用程序同时禁用状态栏和标题栏时,它应该使用全屏。Banner Essentials 示例只显示 Admob 横幅可用区域的顶部。我下载了这个例子,只改变了两件事:

  • 添加我的发布商 ID 以正确编译并接收任何广告;)
  • 向 Activity list 添加一个参数以禁用标题和状态酒吧:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

编译的二进制文件,无论它在什么设备上启动(尝试过 Nexus One、G1、Desire,不同的 Android 版本),都会受到相同问题的影响:

  • 显示广告横幅时按主页,
  • 回到主屏幕后,按住主屏幕即可查看最近的内容启动应用程序,
  • 选择 Banner Essentials 应用。

我的测试显示 Admob 横幅有 50% 的复制机会回到它的位置——屏幕的最顶部。为了更好地展示我的意思,我准备了三个屏幕截图:

http://img841.imageshack.us/g/correctz.png/

重要通知:

  • 当应用程序正常恢复时,横幅显示在状态下方条,并向上滑动直到与屏幕顶部边框对齐,
  • 出现错误时,横幅根本不动,
  • 我无法用任何其他中断重现该问题(按返回,电源按钮),
  • 我认为它可能以某种方式与获得/失去焦点有关(参见屏幕截图)。

我的应用比 Banner Essentials 复杂一点,所以我开始在我的代码中搜索问题,但没有成功,因此尝试尽可能简化情况,结果如下。

有谁知道可能导致问题的原因是什么?也许必须设置一些额外的标志或属性来处理这种行为?

最佳答案

此问题被称为 Android 错误。没有解决方案,只有解决方法。您必须在 onResume 后约 1 秒重新设置 Window Fullscreen(等待状态栏完成其奇特的滑出动画......),这将导致它重新/计算整个布局,“解决”问题(与快速跳到正确的位置)。

public void onResume()
{

...

handler.postDelayed(new Runnable() {
public void run() {
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}, 1500);

...

}

不太好。但它仍然是最好的。更多信息 here .

关于android - Android 上的 Admob - 恢复 Activity 时未覆盖状态栏区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956273/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com