Я развиваю игру, и она идет хорошо. Однако у меня есть проблема с обновлением объявлений AdMob. Каждый раз, когда реклама обновляется или рисует другой аспект объявления, моя частота кадров падает и почти делает игру неиграбельной. Вот что у меня есть для загрузки объявления ...Android, AdMob: обновление объявлений AdMob разрушает частоту кадров
ad = new AdView(this, AdSize.BANNER, "...");
AdRequest adRequest = new AdRequest();
adRequest.addTestDevice("...");
adRequest.addTestDevice("...");
RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
lp.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);
lp.addRule(RelativeLayout.CENTER_HORIZONTAL);
ad.setLayoutParams(lp);
RelativeLayout layout = new RelativeLayout(this);
layout.addView(renderView);
layout.addView(ad);
ad.loadAd(new AdRequest());
setContentView(layout);
Моего решения для рендеринга объявления на вершине SurfaceView
было просто добавить его в RelativeLayout
и добавить как SurfaceView
и AdView
к нему. Все это прекрасно работает и денди, но каждый раз, когда реклама обновляется (пользовательский интерфейс или новый запрос объявления), он заворачивает поток пользовательского интерфейса, что, в свою очередь, замедляет поток рендеринга.
Есть ли способ, с помощью которого я могу сделать все это хорошо, чтобы все работы, выполненные AdView, выполнялись отдельно от основного потока? Я не слишком уверен в динамическом обновлении текущего макета из другого потока.
Спасибо за помощь.
Нет укусы ....... :( – SemperGumbee