2013-05-10 14 views
5

Ho un'applicazione Android in cui ho implementato gli annunci AdMob.AdMob: prestazioni migliori nell'attività Android

Il mio codice layout è molto semplice - ha aggiunto AdView in LinearLayout:

<com.google.ads.AdView 
    android:id="@+id/adMob1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    ads:adSize="BANNER" 
    ads:adUnitId="{AdID}" /> 

In MyActivity in onCreate() metodo che io chiamo:

boolean showAdds = true; 
    if(this.showAdds) { 
     AdView adView = (AdView) findViewById(R.id.adMob1); 
     adView.loadAd(new AdRequest()); 
    } 

Su alcuni dispositivi Android meno recenti (testati per esempio su Samsung Galaxy S1) dopo l'implementazione di AdMob l'app è molto lenta. Ma quando imposto la variabile "showAdds" su "false" -> il caricamento di MyActivity è molto meglio.

C'è qualche possibilità di rendere l'applicazione con AdMob più veloce?

Grazie per tutti i commenti.

risposta

-1

per migliorare le prestazioni, utilizzare ads:loadAdOnCreate="true" nell'attuazione XML del tuo annuncio (Allora non avrete bisogno di chiamare il codice Java, tutto sarà fatto da XML)

Altrimenti è possibile rimuovere i showadds booleani. Forse sta causando il rallentamento.

Ho implementato il codice senza questo codice showadds e funzionano perfettamente su Dispositivi inferiori con visualizzazione rapida mostrata.

Ulteriori informazioni Here

7

anch'io ho lottato con AdView aumentando il tempo di caricamento app. La mia soluzione era quella di spostare il codice degli annunci in un gestore di ritardo (entro onCreate) ...

final Handler handler = new Handler(); 
handler.postDelayed(new Runnable() { 
    @Override 
    public void run() { 
    AdRequest adRequest = new AdRequest.Builder().build(); 
    adView.loadAd(adRequest); 
    adView.bringToFront(); 
    } 
}, 5000); 

Così ora l'applicazione si avvia rapidamente e poi, dopo 5s l'ADView viene caricato. (p.s.bringToFront è usato perché il mio layout dell'app utilizza un misto di codice XML e codice, quindi questo impedisce ad adView di essere nascosto)

-2

Sposta la tua inView di adView in background Discussione.

onCreate(){ 
     //..some other stuff 

     Runnable runnableAdView = new Runnable() { 
      @Override 
      public void run() { 
       initAdView(); 
      } 
     }; 
     new Thread(runnableAdView).start(); 
} 

    private void initAdView() { 

    // Create the adView 
    adView = new AdView(this, AdSize.BANNER, getResources().getString(
      R.string.admob_id)); 

    // Lookup your LinearLayout assuming its been given 

    LinearLayout layout = (LinearLayout) findViewById(R.id.sound_share_screen_ad_container); 

    // Add the adView to it 
    layout.addView(adView); 

    // Initiate a generic request to load it with an ad 
    AdRequest adRequest = new AdRequest(); 
    //adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
    //... 

    adView.loadAd(adRequest); 
} 
+2

Questo si blocca con i nuovi servizi svolgono annunci basati, devono essere eseguito sul thread dell'interfaccia utente. – mbwasi

+1

siete invitati ad aggiornare l'esempio di codice – longilong

Problemi correlati