【问题标题】:How to make sure activity is running (AdMob interstitial)如何确保活动正在运行(AdMob 插页式广告)
【发布时间】:2013-11-04 16:56:55
【问题描述】:
我在我的应用中实现了 AdMob 插页式广告,该方法的工作原理如下:
- 我在我的活动中构造了 ads 对象。 (广告对象引用了活动)
- 在我的 ads 对象中,我检查最后三个是否显示了插页式广告
带计时器的分钟,如果没有显示,我会显示它
该活动的处理程序。
- 如果活动停止或销毁,我也会停止我的广告计时器
大多数情况下,此方案都能正常工作。但有时即使应用程序已经退出,广告也会显示一次。
有没有办法从我的广告对象中检查活动是否真的在运行并且它是当前在屏幕上运行的活动?
【问题讨论】:
标签:
android
android-activity
admob
interstitial
【解决方案1】:
借助下面的代码,你可以得到 android 中的 top 活动:
public static boolean isThisActivityOnTop(Context context,Class<?> activityClass){
ActivityManager am = (ActivityManager) context
.getSystemService(ACTIVITY_SERVICE);
ActivityManager.RunningTaskInfo taskInfo = am.getRunningTasks(1)
.get(0);
String topActivityClass = taskInfo.baseActivity.getClassName();
return topActivityClass.equalsIgnoreCase(activityClass.getName());
}
NB : 代码未经测试,请尝试(调试)。