2011-05-20 17 views
5

Tengo un juego que tiene anuncios. Eventualmente encontré que el origen del retraso se debe básicamente al proceso adRequest, que lleva mucho tiempo.admob: ¿Cómo cargar AdRequest fuera de UI Thread?

super.onCreate(savedInstanceState){ 

    mainLayout = new LinearLayout(this); 
    mainLayout.setOrientation(LinearLayout.VERTICAL); 
    adView = new AdView(this, AdSize.BANNER, "MY_ID"); 
    adView.setVisibility(AdView.VISIBLE); 
    mainLayout.addView(adView); 
    adView.loadAd(new AdRequest()); 
    //more codes below 
    } 

Intenté hacer algo así como crear un hilo que hiciera algo de loadAd cuando hay una adRequest. pero los anuncios resultantes no aparecerán. Por lo tanto, creo que la solicitud loadAd debe hacerse en UI Thread. ¿Hay alguna solución al respecto? Todavía no entiendo cómo funciona el subproceso UI de todos modos

+0

Exactamente lo mismo. Yo uso 'play-services-ads: 8.4.0' y la primera vez que llamo a' adView.loadAd (...) 'mi aplicación se congela por 100-500ms. Y no puedo simplemente moverlo a otro hilo debido a 'No puedo crear el controlador dentro del hilo que no ha llamado a Looper.prepare()' limitación – IlyaEremin

Respuesta

-2

Pruebe usar AsyncTask(). Puede iniciarlo cuando necesite un complemento y se actualizará en segundo plano. Cuando esté listo, puede presentar el resultado nuevamente en el hilo de la interfaz de usuario.

Aunque no es específicamente para anuncios, código Java frikis tiene una gran representación de esta http://www.javacodegeeks.com/2011/05/android-json-gson-revisited.html

+0

bien allí .. Pensé que sería lo mismo que crear un hilo para manejar la solicitud Lo he hecho antes. Intentando adView.loadAd (nuevo AdRequest()) en ese hilo, y allí está, no se muestran anuncios. – Fugogugo

+1

Runnable runnable = new Runnable(); podría ser un buen Java, pero es un mal móvil. –