我有一个应用程序可以显示 Admob 奖励视频和星际广告,但我注意到用户只需按后退按钮,广告就会关闭。有没有办法通过单击后退按钮来阻止广告关闭我尝试使用 onBackPressed() 方法,但没有成功
public class EarnActivity extends AppCompatActivity implements RewardedVideoAdListener{
private RewardedVideoAd mAd;
private boolean showing;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.earn);
runAd();
}
这是投放广告的方法
private void runAd(){
MobileAds.initialize(this, "App ID");
mAd = MobileAds.getRewardedVideoAdInstance(this);
mAd.setRewardedVideoAdListener(this);
loadRewardVideoAd();
mAd.show();
}
loadRewardVideoAd(){
if(!mAd.isLoaded())
{
mAd.loadAd("ad-number", new AdRequest.Builder().build());
}
}
这些是我的 @Override 方法,包括 onbackpressed 方法
@Override
public void onRewardedVideoAdLoaded() {
}
@Override
public void onRewardedVideoAdOpened() {
}
@Override
public void onRewardedVideoStarted() {
showing = true;
}
@Override
public void onRewardedVideoAdClosed() {
loadRewardVideoAd();
showing = false;
}
@Override
public void onRewarded(RewardItem rewardItem) {
}
@Override
public void onRewardedVideoCompleted(){
}
@Override
public void onRewardedVideoAdLeftApplication() {
}
@Override
public void onRewardedVideoAdFailedToLoad(int i) {
loadRewardVideoAd();
}
@Override
public void onBackPressed() {
if(showing){
}else{
super.onBackPressed();
}
}
}
另一种方式,它试图覆盖
onKeyEvent
。但是,请确保您正在用它做什么。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return super.onKeyDown(keyCode, event);
}
防止它的唯一方法...就是不使用它。
原因是在Admob SDK的新Activity中打开的。不是你自己的。
你能做什么?
为您提供这种控制的最相似的是全屏原生广告:
https://developers.google.com/admob/android/native/full-screen
事实是,这些与普通的原生广告相同,只是你把它们放大了。所以我不确定你是否能从中获得同样的利润。知道是否会发生可能会很有趣。但这是另一个话题了...