6

我在我的 iOS 应用程序中使用 Google Admobs 和广告中介。似乎存在电池耗尽问题,因为即使应用程序处于后台,谷歌广告也在运行。当应用程序进入后台时我必须做些什么来暂停谷歌广告并在应用程序激活时恢复。提前致谢。

4

1 回答 1

4

我找到了一个成功的解决方案。希望有人可以提供更可靠的解决方案。在 AppDelegate.m 我有这个......

- (void)applicationDidEnterBackground:(UIApplication *)application {
    [self.viewController.bannerView removeFromSuperview];
    self.viewController.bannerView.delegate = nil;
}

- (void)applicationWillEnterForeground:(UIApplication *)application {
     [self.viewController loadAdBanner];
}

这适用于我的一个应用程序。如果我只是调用 removeFromSuperview 并且没有将 bannerView 的委托设置为 nil,那么当我查看手机上的电池使用情况(运行 iOS 13.5.1)时,我仍然会看到我的应用程序的后台活动。我有另一个应用程序,我在做基本相同的事情,但无论如何我仍然看到后台活动。在这两种情况下,我都使用 AdMob 7.61.0。

我的bannerView 声明如下:

@property(nonatomic, strong) GADBannerView *bannerView;

在 MyViewController.m 我有一个 loadAdbanner 函数,看起来像这样......

- (void)loadAdBanner {
    ...
    [self.bannerView setDelegate:self];
    self.bannerView.rootViewController = self;
    [self.view addSubview:self.bannerView];
    GADRequest *request = [GADRequest request];
    [self.bannerView loadRequest:request];
    ...
}

我希望这有帮助。

于 2020-07-04T10:29:50.497 回答