2014-10-04 5 views
0

사용자가 주 활동에서 뒤로 버튼을 누르면 애플리케이션의 끝에 admob 삽입 광고를 표시하려고합니다. 광고는 표시되지만 광고는 클릭 할 수 없습니다.Admob android app exit에서 삽입 광고를 클릭 할 수 없습니다.

 interstitial = new InterstitialAd(getApplicationContext()); 
     interstitial.setAdUnitId("Ad UNIT ID"); 

     // Create ad request. 
     AdRequest adRequest = new AdRequest.Builder() 
       .addTestDevice(AdRequest.DEVICE_ID_EMULATOR).build(); 

     // Begin loading your interstitial. 
     interstitial.loadAd(adRequest); 

및 OnBackPressed에 :

@Override 
    public void onBackPressed() { 
     super.onBackPressed(); 
     displayInterstitial(); 
    } 

    protected void displayInterstitial() { 
    Log.d(TAG, "start displayInterstitial()"); 
    if (null != interstitial && interstitial.isLoaded()) { 
     Log.d(TAG, "displayInterstitial() loaded"); 
     interstitial.show(); 
    } 
    Log.d(TAG, "end displayInterstitial()"); 
} 

사람이이 문제를 해결하는 데 도움 주실 래요 내 코드

내가 활동에서 onCreate에서 일부를로드 넣어입니까?

+0

문제는 'displayInterstitial()'전에 'super.onBackPressed'를 호출하는 것일 수 있습니다. AdListener를 구현하고 대신 onAdClosed에서 super.onBackPressed를 호출하십시오. 또는 displayInterstitial이 작동 한 후에 super.onBackPressed를 호출하면 실제로 시도 할 수 있습니다. – donfuxx

+0

displayInterstitial() 후에 super.onBackPressed를 호출해도 도움이되지 않았습니다. onBackPressed 수퍼 클래스 메서드와 연결되어 있기 때문에 superListener는 onLoadPressed를 호출 할 수 없습니다. – venkat

+0

AdListener 내부에서 이렇게하는 것이 좋습니다 :'MainActivity.super.onBackPressed(); ' – donfuxx

답변

0

가장 간단한 방법은 다음과 같습니다

 interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdClosed() { 
       finish(); 
      } 
     }); 

그러나, 내 의견으로는 응용 프로그램을 완료하기 전에 초 동안 앱에서 숙박하는 것이 좋습니다.

 interstitial.setAdListener(new AdListener() { 
      @Override 
      public void onAdClosed() { 
       Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        public void run() { 
         finish(); 
        } 
       }, 1000); 
      } 
     }); 

BTW : 다음 AdListener가의 onAdClosed 내부 MainActivity.super.onBackPressed();를 호출의 코멘트에 대한 : 그 방법은이 광고가 여전히 응용 프로그램의 일부임을 더욱 분명하다 나는 그것을 테스트 (자), IllegalStateException을 던졌다. 나는 onBackPressed가 호출 된 순간이 이미 너무 늦었 기 때문이라고 생각합니다. 그러나 어쨌든 필요하지 않으므로 잊어 버리십시오. super onBackPressed 메서드 자체는 AdListener에서 액세스 할 수 있으며 잘 컴파일됩니다 .-)

+0

안녕하세요 Donfux, 시간을 내 주셔서 감사합니다. 여전히 고정되어 있지 않습니다. 클릭은 여전히 ​​작동하지 않습니다. 출구에서 admob 삽입 광고를 구현 한 샘플 프로젝트가 있습니까? 그렇다면 [email protected]으로 메일을 보내주십시오. 내 문제를 찾으려고 노력할 것인가를 점검 할 것이다. – venkat

+0

onAdClosed에 log 문을 추가하여 호출되는지 확인하십시오. onAdClosed 인 – donfuxx

+0

이 호출됩니다. – venkat

0
@Override 
public void onBackPressed() { 
    Log.d(TAG, "onBackPressed Called"); 

    displayInterstitial(); 
    //finish(); 
    super.onBackPressed(); 
} 
+0

나는 이것을 시도했지만 여전히 행운이 없다. – venkat

관련 문제