提问人:Awos Al-Radaideh 提问时间:6/13/2023 最后编辑:Awos Al-Radaideh 更新时间:6/14/2023 访问量:37
如何在打开活动时无延迟地加载插页式广告
how to load interstitial ad without delay when open the Activity
问:
我在 onCreate 方法中加载插页式广告,然后在用户单击按钮时显示它,但打开活动时有延迟,打开活动大约需要 2 到 3 秒 我尝试在后台加载广告,但它不起作用,错误显示是 必须在主 UI 线程上调用
下面是 adsmanger 类
public class AdsManger {
Context context;
InterstitialAd mInterstitialAd;
AdRequest adRequest;
int adLoadRetry=0;
public AdsManger(Context context) {
this.context = context;
triggerAd();
}
public void triggerAd(){
MobileAds.initialize(context, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(@NonNull InitializationStatus initializationStatus) {
}});
adRequest = new AdRequest.Builder().build();
InterstitialAd.load(context, "UnitID", adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
super.onAdFailedToLoad(loadAdError);
mInterstitialAd =null;
Toast.makeText(context, "ad loading failed", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
super.onAdLoaded(interstitialAd);
mInterstitialAd=interstitialAd;
}
});
if(mInterstitialAd==null){
if(adLoadRetry<3){
adLoadRetry++;
triggerAd();
}
}}
public void ShowAd(){
if (mInterstitialAd != null){
mInterstitialAd.show((Activity) context);
}
}}
这是我的 on create 方法
@SuppressLint("MissingInflatedId")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_emailwriter);
AdsManger adsManger=new AdsManger(this);
button=findViewById(R.id.Button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
adsManger.showAd();});
答:
0赞
TNT
6/14/2023
#1
首先,在应用启动时初始化广告,而不是在实际要展示广告时初始化广告。然后保持广告预加载状态,以便在您想展示广告时,广告已准备好展示,因此它会立即显示。
评论