Java 在AsyncTask中加载AdMob横幅
我有个问题: 我试图在AsyncTask中加载AdMob横幅,但显示错误 必须从UI线程调用方法loadAd 首先,我在MainActivity的onCreate方法中初始化了AdView,如下所示:Java 在AsyncTask中加载AdMob横幅,java,android,android-asynctask,Java,Android,Android Asynctask,我有个问题: 我试图在AsyncTask中加载AdMob横幅,但显示错误 必须从UI线程调用方法loadAd 首先,我在MainActivity的onCreate方法中初始化了AdView,如下所示: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mAdTop = new AdView(this); mA
@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;
}
}
@覆盖
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
...
AdMobTask AdMobTask=新的AdMobTask();
adMobTask.execute(mAdTop,adRequest);
}
私有类AdMobTask扩展异步任务{
@凌驾
受保护对象doInBackground(对象…args){
AdView AdView=(AdView)参数[0];
AdRequest请求程序=(AdRequest)参数[1];
adView.loadAd(请求者);
返回null;
}
}
但即使我使用了args参数,它也显示了错误
如何在异步任务中正确实现loadAd方法?不要在异步任务中执行。loadAd已经是异步的;只需从onCreate方法调用loadAd() 从: 公共无效载荷(AdRequest AdRequest) 开始在后台线程上加载广告