【发布时间】:2015-03-23 22:48:41
【问题描述】:
我正在设计一款包含奖励视频的应用,然后再给玩家另一种生活。为了用户体验和参与度,我想确保这个奖励视频在 30 秒后关闭,并将用户带回应用程序。我们正在为 4 个最大的视频网络(Chartboost、Vungle、App Lovin 和 Ad Colony)使用客户端中介解决方案。
许多广告网络都提供这种关闭功能,例如 MoPub 的 MoPubView.destroy()。但是,并非所有网络都提供程序化方法来关闭其广告。
我遇到的所有广告网络都扩展了 View 类来展示他们的广告。这意味着广告本身必须在应用的View 堆栈中。
有没有办法循环浏览Views 并关闭与广告匹配的那个?看来这应该是可能的,因为 MoPub 的 SDK 使用以下代码:
public void destroy() {
unregisterScreenStateBroadcastReceiver();
removeAllViews();
....
}
而removeAllViews() 是一个ViewGroup 方法,由:
public void removeAllViews() {
removeAllViewsInLayout();
requestLayout();
invalidate(true);
}
我很难将这个 ViewGroup 代码与 View 迭代器结合起来,就像在 Enumerate/Iterate all Views in Activity? 中一样。有什么想法吗?
【问题讨论】: