0

我在我的应用中实现了 AdMob 插页式广告,该方法的工作原理如下:

  • 我在我的活动中构建广告对象。(广告对象引用了活动)
  • 在我的广告对象中,我检查是否在最后三分钟内使用计时器显示了插页式广告,如果没有显示,我通过该活动的处理程序显示它。
  • 如果活动停止或破坏,我也会停止我的广告计时器

大多数情况下,这种情况可以正常工作。但有时即使应用程序已经退出,广告也会显示一次。

有没有办法从我的广告对象中检查活动是否真的在运行并且它是屏幕上正在运行的当前活动?

4

1 回答 1

0

借助以下代码,您可以获得 android 中的顶级活动:

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());
}

注意:代码未经测试,请尝试(调试)。

于 2013-11-04T08:56:55.273 回答