Android 如何确保活动正在运行(AdMob Interstitual)

Android 如何确保活动正在运行(AdMob Interstitual),android,android-activity,admob,interstitial,Android,Android Activity,Admob,Interstitial,我已经在我的应用程序中实现了AdMob Interstitual。该方法的工作原理如下: 我在我的活动中构建ads对象。(Ads对象引用了活动) 在我的ads对象中,我检查是否在最后三个中显示了间隙 有计时器的分钟数,如果没有显示,我会显示出来 该活动的处理程序 如果活动被停止或破坏,我也会停止我的广告定时器 大多数情况下,此场景都正常工作。但有时即使应用程序已经退出,广告也会出现一次 有没有办法从我的ads对象中检查该活动是否确实正在运行,以及它是否是屏幕上正在运行的当前活动 借助以下代码

我已经在我的应用程序中实现了AdMob Interstitual。该方法的工作原理如下:

  • 我在我的活动中构建ads对象。(Ads对象引用了活动)
  • 在我的ads对象中,我检查是否在最后三个中显示了间隙 有计时器的分钟数,如果没有显示,我会显示出来 该活动的处理程序
  • 如果活动被停止或破坏,我也会停止我的广告定时器
大多数情况下,此场景都正常工作。但有时即使应用程序已经退出,广告也会出现一次


有没有办法从我的ads对象中检查该活动是否确实正在运行,以及它是否是屏幕上正在运行的当前活动

借助以下代码,您可以获得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());
}
public静态布尔值isThisActivityOnTop(上下文,类activityClass){
ActivityManager am=(ActivityManager)上下文
.getSystemService(活动和服务);
ActivityManager.RunningTaskInfo taskInfo=am.getRunningTasks(1)
.get(0);
字符串topActivityClass=taskInfo.baseActivity.getClassName();
返回topActivityClass.equalsIgnoreCase(activityClass.getName());
}
注意:代码未经测试,请尝试(调试)