在Android中关闭奖励视频广告

我正在设计一个应用程序,其中包含一个奖励视频,然后给予玩家另一种生命.对于用户体验和参与度,我希望确保此奖励视频在30秒后关闭,并且用户将被带回应用程序.我们正在为4个最大的视频网络(Chartboost,Vungle,App Lovin和Ad Colony)使用客户端中介解决方案.

许多广告网络提供了这种近距离功能,例如MoPub的MoPubView.destroy().但是,并非所有网络都提供关闭广告的程序化方法.

我遇到的所有广告网络都会扩展View类以展示他们的广告.这意味着广告本身必须位于应用的View堆栈中.

有没有办法循环浏览视图并关闭与广告匹配的视图?这似乎应该是可能的,因为MoPub的SDK使用以下代码:

public void destroy() {
    unregisterScreenStateBroadcastReceiver();
    removeAllViews();
    ....
}

而removeAllViews()是一个ViewGroup方法,由以下组成:

public void removeAllViews() {
    removeAllViewsInLayout();
    requestLayout();
    invalidate(true);
}

我很难将这个ViewGroup代码与Enumerate/Iterate all Views in Activity?中的View迭代器结合起来.有什么想法吗?

解决方法:

如果广告视图是由您的应用生成的,为什么不保留对衍生视图的引用并在30秒后关闭该视图?或者,如果它们提供XML配置,请为XML视图提供ID并执行findViewById(…)并关闭该视图.

上一篇:事件分发机制详解


下一篇:Android View 滑动冲突解决方式以及原理