Huawei Ads插屏广告点击关闭后onAdClosed方法未调用问题求助
问题根因
com.huawei.hms:ads:3.4.46.300 版本的插屏广告存在回调线程异常问题:onAdClosed 回调方法是在工作线程中触发的,而Android系统要求Toast必须在UI主线程调用才能正常弹出,因此会出现你遇到的不提示的问题。
而com.huawei.hms:ads-lite:13.4.46.300版本官方已经修复了该线程调度问题,所有广告回调默认都在UI主线程触发,因此直接写Toast逻辑可以正常运行。
解决方案
如果你需要继续使用com.huawei.hms:ads:3.4.46.300版本,只需要把onAdClosed里的Toast逻辑手动切换到主线程执行即可,修改后的代码如下:
@Override public void onAdClosed() { super.onAdClosed(); // 手动切到主线程弹Toast runOnUiThread(() -> Toast.makeText(MainActivity.this, "Ad Closed", Toast.LENGTH_SHORT).show()); }
如果没有特殊的全量广告SDK依赖需求,更推荐直接使用ads-lite版本,该版本为官方推出的轻量广告SDK,体积更小,兼容性问题更少。
内容的提问来源于stack exchange,提问作者user7954210
相关产品推荐
相关产品推荐

