gpt4 book ai didi

iOS:用户单击 ADBannerView 后切换应用程序会导致 OpenGL 崩溃

转载 作者:行者123 更新时间:2023-11-29 01:31:35 25 4
gpt4 key购买 nike

我有一个 GLKViewController 子类实现,一个 ADBannerView 作为 subview 。广告加载和呈现都很好。 OpenGL 应用程序也可以正常工作。当您点击广告时,会出现弹出窗口。 GLKViewController 启用了默认的暂停退出行为。

如果您在 GLKViewController 的 setPaused 上设置断点,您会注意到 setPaused:NO 在您离开您的应用程序时被调用(双击主屏幕并选择另一个应用程序)而广告弹出窗口可见。该行为仅在 ADBannerView 弹出窗口可见时发生,否则如果您从应用程序切换开则不会发生。

我什至可以在 iOS 9.1 中使用 Xcode 7 生成的默认 OpenGL 模板应用重现上述行为。

1) 这正常吗?

2) 对我来说,这会导致一致的可重现崩溃,因为在调用 setPaused:NO 后,GLKViewController 会被重绘,这会导致 OpenGL 操作在应用程序处于后台时发生。此时应用程序被(正确地)终止。

最佳答案

我当前的解决方法是在应用程序未激活时放弃对 setPaused:NO 的调用,如下所示。这似乎工作正常,但为什么会发生这种情况让我感到困惑。

- (void)setPaused:(BOOL)paused
{
long appState = (long)[UIApplication sharedApplication].applicationState;
if (!paused && (appState != 0)) {
NSLog(@"setPaused - REJECTING Unpause; %ld", appState);
return;
}
[super setPaused:paused];
}

关于iOS:用户单击 ADBannerView 后切换应用程序会导致 OpenGL 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408801/

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