Загрузка объявления (adMob) в фоновом потоке

Я хочу загрузить свой add в фоновом потоке, потому что он делает SlidingMenu при открытии и закрытии. Должен ли я использовать Thread / Handler ? Или AsyncTask ?

 String MY_AD_UNIT_ID = "----"; AdView adView = new AdView(getActivity(), AdSize.BANNER, MY_AD_UNIT_ID); final LinearLayout adLayout = (LinearLayout) getActivity() .findViewById(R.id.adLayout); adLayout.addView(adView); adView.loadAd(new AdRequest()); 

Я не считаю, что это можно сделать, поскольку все связанные с UI вещи должны быть сделаны в основном потоке. У API, вероятно, уже есть поток, чтобы получить объявление в сети. Если бы это не андроид, он бы выбросил NetworkOnMainThreadException если какая-либо связанная с сетью информация будет сделана в основном потоке

Этого можно достичь, загрузив объявление в runOnUiThread пользовательского интерфейса runOnUiThread

Вызовите это из onCreate()

  Thread adThread = new Thread() { @Override public void run() { loadAd(); } }; adThread.start(); 

loadAd()

 private void loadAd() { // Banner Ad final AdView adview = (AdView) this.findViewById(R.id.adview); // Request for ads final AdRequest adRequest = new AdRequest.Builder() // Time for test devices .addTestDevice(AdRequest.DEVICE_ID_EMULATOR) .addTestDevice("xxxxxxxxxxxxxxxxxxxxxxx") .addTestDevice("xxxxxxxxxxxxx") .build(); // Load Ads on UI Thread runOnUiThread(new Runnable() { @Override public void run() { adview.loadAd(adRequest); } }); } 

Перед загрузкой рекламы вы должны использовать метод MobileAds.initialize () . После этого loadAd работает быстрее