gpt4 book ai didi

android - 如果在首次加载期间没有连接,AdMob 广告横幅将不会显示

转载 作者:行者123 更新时间:2023-11-30 02:04:04 26 4
gpt4 key购买 nike

public class AndroidLauncher extends AndroidApplication {

protected View gameView;
protected AdView adView;
protected RelativeLayout layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
cfg.useImmersiveMode = true;


layout = new RelativeLayout(this);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
layout.setLayoutParams(params);

AdView admobView = createAdView();
layout.addView(admobView);
View gameView = createGameView(cfg);
layout.addView(gameView);

setContentView(layout);

AdRequest adRequest = new AdRequest.Builder().build();
admobView.loadAd(adRequest);
}


private AdView createAdView() {
adView = new AdView(this);
adView.setAdSize(AdSize.SMART_BANNER);
adView.setAdUnitId("**actual_id****");
adView.setId(R.id.admob);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_TOP, RelativeLayout.TRUE);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
adView.setLayoutParams(params);
adView.setBackgroundColor(Color.BLACK);
adView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
adView.setVisibility(View.VISIBLE);
super.onAdLoaded();
}

public void onAdFailedToLoad(int errorCode) {
adView.setVisibility(View.GONE);
super.onAdFailedToLoad(errorCode);
}
});
// adView.setVisibility(View.GONE);

return adView;
}

private View createGameView(AndroidApplicationConfiguration cfg) {
gameView = initializeForView(new GameName(), cfg);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
params.addRule(RelativeLayout.CENTER_HORIZONTAL, RelativeLayout.TRUE);
params.addRule(RelativeLayout.BELOW, adView.getId());
gameView.setLayoutParams(params);
return gameView;
}


@Override
public void onResume() {
super.onResume();
if (adView != null) adView.resume();
}

@Override
public void onPause() {
if (adView != null) adView.pause();
super.onPause();
}

@Override
public void onDestroy() {
if (adView != null) adView.destroy();
super.onDestroy();
}
}

这段代码有什么问题?我尝试了几件事,但行为是一样的。例如,如果 Wi-Fi 路由器在 session 期间重新启动,它也不会加载广告,直到游戏关闭并作为新进程重新打开。

最佳答案

尝试使用 AlarmManager 或 JobManager 从您的 onAdFailedToLoad() 方法中安排重试 admobView.loadAd(adRequest)

您还可以在尝试加载广告之前检查网络连接,并在连接恢复后使用 CONNECTIVITY_CHANGED 广播接收器尝试加载。

按原样,您只是从 onCreate() 调用 loadAd()。必须离开/重新打开应用程序才能加载广告是可以预料的。

关于android - 如果在首次加载期间没有连接,AdMob 广告横幅将不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31007177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com