【发布时间】:2016-03-05 19:00:16
【问题描述】:
我有一个问题: 我尝试在 AsyncTask 中加载 AdMob 横幅,但显示错误
Method loadAd must be called from the UI thread
首先,我在 MainActivity 的 onCreate 方法中初始化 AdView,如下所示:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mAdTop = new AdView(this);
mAdTop.setAdSize(AdSize.BANNER);
mAdTop.setAdUnitId("ca-app-pub-3940256099942544/6300978111");
adRequest = new AdRequest.Builder()
.addTestDevice("0637136C85DF244080C2A344FA8F51C8")
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)
.build();
}
然后我用 loadAd 方法调用了 AsyncTask:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
AdMobTask adMobTask = new AdMobTask();
adMobTask.execute(mAdTop, adRequest);
}
private class AdMobTask extends AsyncTask<Object, Object, Object> {
@Override
protected Object doInBackground(Object... args) {
AdView adView = (AdView) args[0];
AdRequest requester = (AdRequest) args[1];
adView.loadAd(requester);
return null;
}
}
但即使我使用了 args 参数,它也会显示错误。
如何在 AsyncTask 中正确实现 loadAd 方法?
【问题讨论】:
标签: java android android-asynctask