7

我在我的应用程序中使用 Google AdMob SDK(最近下载的最新版本)。

当我的应用程序启动时,它会冻结 4-5 秒,直到广告加载并显示。之后就顺利运行了。当我注释掉横幅请求行时,应用程序正常启动。

我制作了一个自定义助手类,其中包含以下代码。

- (void) getGoogleBanner:(UIViewController *) targetController
{
    self.googleBannerView.rootViewController = targetController;
    [self.googleBannerView.rootViewController.view addSubview:self.googleBannerView];
    [self.googleBannerView setDelegate:self];
    GADRequest* request = [GADRequest request];
    [self.googleBannerView loadRequest:request];
}

在哪里

  • googleBannerView 是我班级的一个属性,类型为 GADBannerView
  • 我事先正确设置了框架尺寸和广告单元ID
  • targetController 是我要添加横幅的控制器
  • 我在各种不同控制器的 viewDidAppear 中调用 [CustomClass getGoogleBanner:self] 方法并成功显示横幅,除了第一次加载问题。

我想知道是否有人遇到过这个问题,以及如何解决。我对任何可以消除冻结问题的想法持开放态度。我试图将代码运行到后台线程,但我失败了,因为我对它不是很有经验。

非常感谢任何帮助,在此先感谢。

4

1 回答 1

2

我只有在模拟器中运行时才会遇到这个问题,所以如果是这种情况,您可能不必担心。

据我所知,在调用loadRequest方法时,框架也会调用canOpenURL:方法(UIApplication)。从我运行的一些测试中(在模拟器和带有 5.1.1 和 6.1.3 的 iOS 设备上),canOpenURL偶尔会在模拟器上冻结几秒钟(一旦需要 20 秒才能返回),但在设备上运行良好。

于 2013-07-26T10:43:44.087 回答