我创建了一个简单的Android游戏并决定投放插页式广告。我的代码(我使用的是MoPub广告SDK,实现类似于admob):
private void loadMoPubInterstitial () {
moPubInterstitialView.load();
}
我从main活动的onCreate()方法调用它。插页式广告正在展示,但它会导致UI线程负载过重。控制台显示警告,大约350帧被丢弃,并且应用程序在主线程上执行了太多工作。游戏真的落后于设备。当我评论该行
时moPubInterstitialView.load();
警告被移除,游戏在设备上顺利运行。所以我决定将插页式加载过程移到另一个线程。这是我的代码:
private void loadMoPubInterstitial () {
new Thread(new Runnable() {
public void run() {
moPubInterstitialView.load();
}
}).start();
}
但这一次,插页式广告没有显示出来。检查以确定插页式广告是否已准备就绪:
moPubInterstitialView.isReady()
总是返回false。
可能是什么原因?
答案 0 :(得分:0)
我不确定,但我认为你在线程完成加载工作之前检查moPubInterstitialView,只需在线程完成所有任务后尝试检查moPubInterstitialView.isReady()我试过下面的样品,它适合我。
boolean flag= false;
temptest ="before change" ;
Thread thread= new Thread(new Runnable() {
@Override
public void run() {
temptest=" text changed";
flag= true;
}
});
thread.start();
if(flag)
{
System.out.println(temptest);
}