【发布时间】:2018-06-08 09:50:08
【问题描述】:
我正在尝试在我的 Android 应用程序中使用 AdMob 奖励广告。 为了将其包含在推荐的应用程序中,我需要在用户单击按钮后等待奖励视频加载。 我在下面的代码中都在尝试它,但我得到了错误:
java.lang.IllegalStateException:必须在主 UI 上调用 showAd 线程。
当按钮被点击时:
b_r_ans.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(isSomBotaoLigado() && loaded[0])
soundPool.play(soundID, MyApplication.getVolumeBotao(), MyApplication.getVolumeBotao(), 1, 0, 1f);
Toast.makeText(MyApplication.getAppContext(),carregando_rv, Toast.LENGTH_LONG).show();
Thread t_rv = new Thread(new Runnable() {
public void run() {
while(!rv_loaded){
try {
Thread.sleep(500);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
});
t_rv.start();
try {
t_rv.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
mRewardedVideoAd.show();
}
});
重写监听器:
@Override
public void onRewardedVideoAdLoaded() {
Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
rv_loaded = true;
}
使用 mRewardedVideoAd.isLoaded() 函数会触发相同的问题。
如何等待视频正确加载?
【问题讨论】:
标签: java android multithreading admob wait