android - AdMob 让应用卡在 onPause
问题描述
我在我的应用中使用 AdMob 插页式广告。如果我遵循这组步骤:
- 显示插页式广告
- 用户点击广告,重定向到我的应用之外(例如 Google Play)
- 用户选择“返回”按钮返回广告
- 用户点击“x”按钮关闭广告
用户以黑屏返回我的应用程序。经过一些故障排除后,我发现我的应用响应的最后一个事件是 onPause;onResume 随后没有被调用。因此,我的应用程序不知道重新加载资产并恢复游戏。
作为一种解决方法,我将以下代码放在 onAdLeftApplication() 中:
@Override
public void onAdLeftApplication() {
super.onAdLeftApplication();
s_activity.finish();
}
这样,如果用户立即关闭广告,他只是返回游戏,但如果他决定点击广告,我的游戏将关闭,他必须重新启动 - 不漂亮,但比冻结挂起更好。
谁能推荐一个更好的方法来处理这个?我应该在 onAdLeftApplication 中做些什么来确保我的代码在广告关闭后收到 onResume 消息吗?还有其他我应该听的事件吗?
一个脚注,我已经在这个应用程序中添加了 firebase,不知道这到底意味着什么,但它应该会做一些很棒的事情,在这种情况下,我没有看到任何关于如何响应 admob 插页式广告的额外说明。
提前致谢!
解决方案
试试这个可能对你有帮助。
public void loadInterstitial() {
// Instantiate an InterstitialAd object
AdSettings.addTestDevice("350cf676a5848059b96313bdddc21a35");
interstitialAd = new InterstitialAd(MainActivity.this,"222591425151579_222592145151XXX");
interstitialAd.loadAd();
// Set listeners for the Interstitial Ad
interstitialAd.setAdListener(new InterstitialAdListener() {
@Override
public void onInterstitialDisplayed(Ad ad) {
Log.v("OkHttp", ad.toString());
}
@Override
public void onInterstitialDismissed(Ad ad) {
Log.v("OkHttp", ad.toString());
}
@Override
public void onError(Ad ad, AdError adError) {
Log.v("OkHttp", ad.toString() + " " + adError.getErrorCode() + " " + adError.getErrorMessage());
}
@Override
public void onAdLoaded(Ad ad) {
Log.v("OkHttp", ad.toString());
showInterstitial();
}
@Override
public void onAdClicked(Ad ad) {
Log.v("OkHttp", ad.toString());
}
@Override
public void onLoggingImpression(Ad ad) {
Log.v("OkHttp", ad.toString());
}
});
}
public void showInterstitial() {
interstitialAd.show();
}
现在,在单击关闭或 AdLoaded 后,执行您接下来要执行的代码以继续游戏,您将获得所有事件的侦听器,并且您可以为每个事件设置不同的情况。
推荐阅读
- python - Python Pandas 内存丢失
- c# - Protobuf-net 和 StringValue 类型
- python - Sagemaker Blazingtext .content_type = 'application/json' AttributeError: 无法设置属性
- winapi - CopyFileEx 的 pbCancel 参数如何安全?
- c# - 更新时的 rb.velocity 很奇怪(初学者问题)
- azure - 如何配置 Azure Maps 室内模块图标?
- python - python - 如何比较两列并获取python pandas数据框中两者中所有匹配项的第三列的平均值?
- python - 在 Python 中动态创建列表的最佳方法是什么?
- java - 尝试从字符串中解析 Uri 但我收到错误权限拒绝:ACTION_OPEN DOCUMENT
- vb.net - 如何在 VB.net 中使用接口作为对象的扩展方法工作