2015-09-27 1 views
0

J'essaie d'ajouter un interstitiel à mon application qui utilise setContentView. J'ai déjà un "écouteur" implémenté qui appelle correctement chaque fois qu'une annonce est nécessaire. Vous pouvez abréger votre réponse en appelant cette fonction "Listener" {...} et supposer que tout ce qui se trouve entre les crochets apparaîtra chaque fois que l'application signale une annonce. La réponse suivante a une bonne méthode pour les bannières publicitaires.Annonce interstitielle avec setContentView

Implementing Admob banner when setContentView() is used for the Surfaceview

Ma question est, dans ce scénario, comment dois-je mettre en œuvre un interstitiel?

Mon code est essentiellement la réponse du lien, plus ceci:

...  
     setContentView(layout); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 

     listener= new PropertyChangeListener() { 
      @Override 
      public void propertyChange(PropertyChangeEvent event) { 
       if (event.getPropertyName()=="sharing1") { 
        caring(); 
        game.dead=false; 
        game.sharing1=false; 
       } 
       if(event.getPropertyName()=="dead") 
       { 
       //Make an interstitial ad here 
       } 
      } 
     }; 

Répondre

0

Je ne sais pas ce que vous demandez, mais contrairement à des bannières publicitaires, une annonce interstitielle est une pop-up qui affiche indépendamment de l'activité sous-jacente de vue du contenu

Vous pouvez appeler votre fonction après avoir appelé #setContentView(). Peut-être que vous devriez un peu de code, donc nous savons quels sont les problèmes spécifiques que vous êtes confronté à

MISE À JOUR: Vous pouvez précharger et montrer qu'en cas de besoin, dans ce cas, lorsque le joueur « meurt ». Cela réduirait la latence. Après chaque affichage d'une annonce, vous devez recharger l'annonce pour qu'elle s'affiche lors d'appels ultérieurs. En outre, utilisez un gestionnaire si votre écouteur serait appelé dans un thread non-UI. Voici une solution:

... 



    InterstitialAd interstitial; 
     setContentView(layout); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); 
     InterstitialAd interstitial = new InterstitialAd(this); 
     interstitial.setAdUnitId("your-ad-unit"); 
     AdRequest adRequest = new AdRequest.Builder().build(); 
     // Preload your interstitial to avoid load time delays 
     interstitial.loadAd(adRequest); 
     listener= new PropertyChangeListener() { 
      @Override 
      public void propertyChange(PropertyChangeEvent event) { 
       if (event.getPropertyName()=="sharing1") { 
        caring(); 
        game.dead=false; 
        game.sharing1=false; 
       } 
       if(event.getPropertyName()=="dead") 
       { 
       //Make an interstitial ad here 
     runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
     if (interstitial != null && interstitial.isLoaded()){ 
      interstitial.show(); 
      //reload ad 
      interstitial.loadAd(new AdRequest.Builder().build());    
      } 
     } 
    }); 
       } 
      } 
     }; 
+0

Le code est essentiellement identique à celui du lien. La seule différence est que j'ai un "écouteur" qui peut appeler une annonce plusieurs fois. –

+0

@ArriFerrari Très bien. J'ai modifié ma réponse. J'espère que cela aide –

+0

Eh bien, le problème que j'ai est qu'en utilisant setContentView(); Il semble que je bloque l'annonce. –