【发布时间】:2020-06-20 19:10:11
【问题描述】:
我正在使用this(admob_flutter) 包在我的 Flutter 应用上添加 Admob 广告,最近我收到来自 google play 的通知,说我的应用已被删除,他们在我的电子邮件中发送了以下声明:
与您的应用相关的广告不得干扰其他应用、广告、 或设备的操作,包括系统或设备按钮和 港口。这包括覆盖、伴随功能和小部件 广告单元。广告只能在为其提供服务的应用中展示。
在对那封不清楚的令人困惑的压力电子邮件进行了一些研究后,我发现了这种情况,因为如果应用未激活或在 中,插页式广告仍然可以继续工作>前景甚至在通过返回按钮关闭应用之后,都没有终止。
所以我搜索了如何在颤振上收听这些事件,我确实找到了didChangeAppLifecycleState,但我不知道如何在我的广告中实现它!!
这是我的代码:(这里没有实现小部件树,因为我猜这并不重要)
AdmobInterstitial interstitialAd;
dynamic _state;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
interstitialAd = AdmobInterstitial(
adUnitId: 'xxxxxxxxxxxxxx',
listener: (AdmobAdEvent event, Map<String, dynamic> args) {
if (event == AdmobAdEvent.loaded) interstitialAd.show();
if (event == AdmobAdEvent.closed) interstitialAd.dispose();
if (event == AdmobAdEvent.failedToLoad) {
print("Error code: ${args['errorCode']}");
}
},
);
interstitialAd.load();
}
@override
void dispose() {
interstitialAd.dispose();
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
setState(() {
_state = state;
});
switch(state){
case AppLifecycleState.paused:
print('paused state');
break;
case AppLifecycleState.resumed:
print('resumed state');
break;
case AppLifecycleState.inactive:
print('inactive state');
break;
default:
break;
}
}
【问题讨论】:
标签: android flutter dart google-play