我目前正在尝试使用 firebase_admob 插件中的横幅广告。显示和处理它们的过程非常简单,我在 initState() 和 dispose() 中完成。
创建和显示添加的代码如下所示:
_bannerAd = createBannerAd();
_bannerAd
..load().then((loaded) {
if (loaded) {
_bannerAd..show();
}
});
但是,由于我异步调用 show(),因此在显示广告时 View 可能已经关闭(即通过非常快地单击返回按钮)。在这种情况下,将永远不会调用 dispose() 方法,并且广告将“卡”在屏幕底部。
我该如何解决这个问题?我是否错误地使用了横幅广告,或者是否可以检测到 View 是否已更改?我尝试使用状态的“mounted”属性,但它似乎不起作用。
最佳答案
在显示添加之前检查状态类的“this.mounted”属性。
_bannerAd = createBannerAd();
_bannerAd
..load().then((loaded) {
if (loaded && this.mounted) {
_bannerAd..show();
}
});
https://stackoverflow.com/questions/49833831/
相关文章:
dart - 如何在 Flutter 中通过 Navigator 测试导航
firebase - Firestore 事务失败,出现 "Transaction failed a
dictionary - flutter/Dart : How to access a single
dart - Flutter 在 `flutter` 命令上失败
dart - 如何在 Flutter 中移除 AppBar 前导图标周围的额外填充
android - 访问本地主机 :port from Android emulator