[英]Why does my interstitial ad show at the wrong time (but in the right place)?
我想在从 MainActivity 转到 Activity2 时显示插页式广告。 相反,广告仅在从 Activity2 单击返回 MainActivity 时显示。
有谁知道我做错了什么?
谢谢
我在加载 Activity2 的 MainActivity 中有一个按钮。 我在按钮的代码中有以下内容。
if (mInterstitialAd != null) {
mInterstitialAd.show(MainActivity.this);
} else {
Log.i(TAG, "Ad failed to load");
}
我以为我可以通过将 MainActivity.this 替换为 Activity2 来解决问题,但它有一个红色下划线。 我试过“Activity2”、“Activity2.class”和“Activity2.java”。
以下代码用于加载和调用广告。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MobileAds.initialize(this, new OnInitializationCompleteListener() {
@Override
public void onInitializationComplete(InitializationStatus initializationStatus) {
}
});
loadInterstitial();
public void loadInterstitial(){
AdRequest adRequest = new AdRequest.Builder().build();
InterstitialAd.load(this, getString(R.string.interstitial_ad_unit_id), adRequest, new InterstitialAdLoadCallback() {
@Override
public void onAdLoaded(@NonNull InterstitialAd interstitialAd) {
super.onAdLoaded(interstitialAd);
Log.d(TAG, "Ad loaded successfully");
mInterstitialAd = interstitialAd;
mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() {
@Override
public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
super.onAdFailedToShowFullScreenContent(adError);
Log.d(TAG, "Ad failed to show");
}
@Override
public void onAdShowedFullScreenContent() {
super.onAdShowedFullScreenContent();
Log.d(TAG, "Ad shown successfully");
mInterstitialAd = null;
}
@Override
public void onAdDismissedFullScreenContent() {
super.onAdDismissedFullScreenContent();
Log.d(TAG, "Ad dismissed");
}
});
}
@Override
public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
super.onAdFailedToLoad(loadAdError);
Log.i(TAG, "onAdLoaded");
mInterstitialAd = null;
}
});
}
我认为您需要添加如下方式的更改。
在MainActivity中编写如下代码
添加常量
public static final int REQUEST_CODE = 1;
像下面这样调用 Activity2
Intent intent = new Intent(MainActivity.this,
Activity2.class);
startActivityForResult(intent , REQUEST_CODE);
现在使用 onActivityResult 检索结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
try {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
loadInterstitial();
}
} catch (Exception ex) {
Toast.makeText(Activity.this, ex.toString(),
Toast.LENGTH_SHORT).show();
}
}
每当您按下后退键/按钮操作时, Activity2都会编写下面的代码
Intent intent = getIntent();
intent.putExtra("key", value);
setResult(RESULT_OK, intent);
finish();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.