如何在打开活动时无延迟地加载插页式广告

how to load interstitial ad without delay when open the Activity

提问人:Awos Al-Radaideh 提问时间:6/13/2023 最后编辑:Awos Al-Radaideh 更新时间:6/14/2023 访问量:37

问:

我在 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();});
java android 异步 admob 插页式广告

评论


答:

0赞 TNT 6/14/2023 #1

首先,在应用启动时初始化广告,而不是在实际要展示广告时初始化广告。然后保持广告预加载状态,以便在您想展示广告时,广告已准备好展示,因此它会立即显示。