Java 调用函数

Java 调用函数,java,android,admob,Java,Android,Admob,我在一个类中定义了这个布尔值: private boolean showad; 我在同一个类中定义了这个函数,它检查showad是否设置为true: public void adon() { if (showad == true) { AdView adView = (AdView) this.findViewById(R.id.ad); adView.loadAd(new AdRequest()); } } 如何让这个函数adon()反复运行,以检查showad布尔

我在一个类中定义了这个布尔值:

private boolean showad;
我在同一个类中定义了这个函数,它检查
showad
是否设置为
true

public void adon() {
  if (showad == true) {
    AdView adView = (AdView) this.findViewById(R.id.ad);
    adView.loadAd(new AdRequest());
  }
}

如何让这个函数
adon()
反复运行,以检查
showad
布尔值中的更改?

好的,我将在这里做一个假设,并猜测您实际上并不希望通过无限循环来检查布尔值以显示广告。因此,让我给您一些真正的建议,而不是在注释中大肆渲染。似乎您想要检查是否在特定屏幕上显示广告:活动或片段

void setShowad(boolean val) {
    if (showad) {
        AdView AdView = (AdView) this.findViewById (R.id.ad);
        adView.loadAd (AdRequest new ());
    }
    showad = val;
}
所以我给你的建议是:

在onResume()方法中检查if条件,并在那里显示/不显示广告

@Override
    public void onResume() {
        super.onResume();
            if (showad == true) {
                  AdView AdView = (AdView) this.findViewById (R.id.ad);
                  adView.loadAd (AdRequest new ());
            }
}
这样,无论何时加载/刷新屏幕,它都会进行检查。我想你并不真的想要实时检查是否显示你的广告,因为这对用户来说是非常不和谐的。只需在onResume()中签入即可。如果您有任何进一步的问题,请留下评论,我将扩大我的答案。如果你喜欢这个答案,请投票并接受


但如果它真的必须是实时的。我可以帮助您设置一个计时器/延迟可运行,每隔一段时间就会检查一次。

当然您有一些代码可以设置
showad
-因此您可以在那里调用它,而不是“持续”。showad是
布尔值
而不是
字符串
!习惯使用
if(showad)
而不是
if(showad==true)
。这是多余的。你为什么希望它一直运行?你可以在一个while(1)循环中调用adon,尽管这不太可能是你想要的,因为它会耗尽你所有的CPU。否则,您可能需要设置一个计时器。但是当我在WebAppInterface(JS接口)中调用adon()时,应用程序崩溃