我创建了一个简单的安卓游戏,并决定投放插页式广告。我的代码(我使用的是MoPub广告SDK,实现类似于admob):
private void loadMoPubInterstitial () {
moPubInterstitialView.load();
}
我从主活动的 onCreate() 方法调用它。显示插页式广告,但它会导致 UI 线程负载过重。控制台显示警告,指出丢弃了大约 350 帧,并且应用程序在主线程上执行了太多工作。游戏在设备方面确实滞后。当我评论这行时
moPubInterstitialView.load();
警告已删除,游戏在设备上运行流畅。所以我决定将插页式加载过程移动到另一个线程。这是我的代码:
private void loadMoPubInterstitial () {
new Thread(new Runnable() {
public void run() {
moPubInterstitialView.load();
}
}).start();
}
但这一次,插页式广告没有显示。检查以确定插页式广告是否已准备就绪:
moPubInterstitialView.isReady()
始终返回假值。
可能是什么原因?
我不确定,但我认为您在线程完成加载工作之前正在检查 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);
}