Java 如果在使用Facebook间隙广告时,其他方法不能正常工作,间隙广告将自动显示

Java 如果在使用Facebook间隙广告时,其他方法不能正常工作,间隙广告将自动显示,java,android-studio,interstitial,facebook-audience-network,Java,Android Studio,Interstitial,Facebook Audience Network,if else用于检查的间隙ad是否已加载。如果未加载,则由else加载startinent。(代码如下) 问题(请参阅日志猫):如果未加载Ad,则第二个活动通过else部分打开,然后在几秒钟后AdListener运行If部分间隙Ad自动弹出。[这违反广告政策] 2020-11-22 01:26:46.761 12278-12278/com.udai.aadharloan.kredit.finance.pmscheme E/HomeActivity: ===== BTN 1 ELSE PART

if else
用于检查的
间隙ad
是否已加载。如果未加载,则由
else
加载
startinent
。(代码如下)

问题(请参阅日志猫):如果未加载Ad,则
第二个活动
通过
else
部分打开,然后在几秒钟后
AdListener
运行
If
部分
间隙Ad
自动弹出。[这违反广告政策]

2020-11-22 01:26:46.761 12278-12278/com.udai.aadharloan.kredit.finance.pmscheme E/HomeActivity: ===== BTN 1 ELSE PART
2020-11-22 01:26:48.631 12278-12278/com.udai.aadharloan.kredit.finance.pmscheme E/HomeActivity: ===== AdListener : Ad loaded and then show.
2020-11-22 01:26:48.731 12278-12470/com.udai.aadharloan.kredit.finance.pmscheme E/libc: Access denied finding property "vendor.debug.trace.perf"
2020-11-22 01:26:48.844 12278-12278/com.udai.aadharloan.kredit.finance.pmscheme E/HomeActivity: ===== loggin impression
2020-11-22 01:26:58.141 12278-12314/com.udai.aadharloan.kredit.finance.pmscheme E/BufferQueueProducer: [unnamed-12278-7] setMaxDequeuedBufferCount: 2 dequeued buffers would exceed the maxBufferCount (2) (maxAcquired 1 async 0 mDequeuedBufferCannotBlock 0)
2020-11-22 01:26:58.141 12278-12314/com.udai.aadharloan.kredit.finance.pmscheme E/Surface: IGraphicBufferProducer::setBufferCount(3) returned Invalid argument
2020-11-22 01:26:58.146 12278-12314/com.udai.aadharloan.kredit.finance.pmscheme E/BufferQueueProducer: [unnamed-12278-8] setMaxDequeuedBufferCount: 2 dequeued buffers would exceed the maxBufferCount (2) (maxAcquired 1 async 0 mDequeuedBufferCannotBlock 0)
2020-11-22 01:26:58.146 12278-12314/com.udai.aadharloan.kredit.finance.pmscheme E/Surface: IGraphicBufferProducer::setBufferCount(3) returned Invalid argument
2020-11-22 01:26:58.151 12278-12314/com.udai.aadharloan.kredit.finance.pmscheme E/BufferQueueProducer: [unnamed-12278-9] setMaxDequeuedBufferCount: 2 dequeued buffers would exceed the maxBufferCount (2) (maxAcquired 1 async 0 mDequeuedBufferCannotBlock 0)
2020-11-22 01:26:58.151 12278-12314/com.udai.aadharloan.kredit.finance.pmscheme E/Surface: IGraphicBufferProducer::setBufferCount(3) returned Invalid argument
2020-11-22 01:27:50.611 12278-12278/com.udai.aadharloan.kredit.finance.pmscheme E/HomeActivity: ===== Ad dismissed.
此处
其他
运行部分,然后打开新活动。然后自动运行
If
部分中的
AdListener
。(例如:onadaLoaded、onLoggingImpression、onInterstitutialDisposed)

我如何解决facebook中间广告问题?

我解决了这个问题:

不要在onAdLoaded(Ad)上调用
on中的
interstituralad.show()


它调用before
AdListener
mean before
Log.e(TAG,”==btn 1:如果部分正在运行”)

Bro,您的答案是错误的。如果在
AdListener
之前显示
ad
,则将显示
ad
。但是在那
ad
上,这个
AdListener
不起作用。意思是说,如果你在
onadload()
中没有显示
ad
,那么
addismiss()
方法在
Facebook受众网络中不起作用。试试这个,可能会有帮助:
if(interstitalad!=null){//your code for adLoaded}
@Override
    public void onClick(View v) {
        switch (v.getId()) {

            case R.id.btn1Home:
                if (interstitialAd.isAdLoaded()) {
                    Log.e(TAG, "===== btn 1: if part running");
                    interstitialAd=new InterstitialAd(this,"166868475011030_166000348414076");
                    interstitialAdListener=new InterstitialAdListener(){
                        @Override public void onInterstitialDisplayed(Ad ad){}
                        @Override public void onInterstitialDismissed(Ad ad){
                            Log.e(TAG, "===== Ad dismissed.");
                            Intent intent1btn=new Intent(HomeActivity.this,page1activity.class);
                            startActivity(intent1btn);}
                        @Override public void onError(Ad ad,AdError adError){}
                        @Override public void onAdLoaded(Ad ad){
                            Log.e(TAG, "===== AdListener : Ad loaded and then show.");
                            interstitialAd.show();}
                        @Override public void onAdClicked(Ad ad){}
                        @Override public void onLoggingImpression(Ad ad){Log.e(TAG, "===== loggin impression");}};
                    // For auto play video ads, it's recommended to load the ad
                    // at least 30 seconds before it is shown
                    interstitialAd.loadAd(interstitialAd.buildLoadAdConfig().withAdListener(interstitialAdListener).build());

                }else {
                        Log.e(TAG, "===== BTN 1 ELSE PART");
                        if (!interstitialAd.isAdLoaded()) {
                            interstitialAd.loadAd();
                            Intent intent1btn = new Intent(HomeActivity.this, page1activity.class);
                            startActivity(intent1btn);
                        }
                }

                break;
.........