我的应用程序包含两个活动:MainActivity和RoomOne,当用户按下按钮时,会显示“奖励视频广告”,并且作为奖励,允许用户访问RoomOne活动,但是当用户进入RoomOne活动时,他返回了MainActivity,因为Rewarded Video Ad拒绝展示,所以他再也无法进入RoomOne,所以它是这样的:

1位用户启动该应用。

2位用户想要访问RoomOne,因此请按一个按钮。

3奖视频广告成功展示后,当广告结束时,用户通过将其带到RoomOne来奖励用户。

4位用户已完成他要在RoomOne中进行的操作,然后按返回按钮返回MainActivity。

5-他被带到MainActivity。

现在是6点了,他想回到RoomOne,但是他不能,因为当他按下按钮时广告没有显示,现在他需要重新启动应用程序才能再次进入。

我试图弄清楚Toasts和日志的情况,似乎在活动中加载了AdMob奖励视频后,用户又转到另一个活动并返回原始活动,则SDK无法加载广告。我的SDK设置正确,并且可以正常加载“奖励视频”,但是当用户切换活动时,它似乎会中断,但是如果他停留在同一活动中,则AD视频通常会一个接一个地显示。

我的代码:

public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener{

    private RewardedVideoAd mAd;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //Initialise Rewarded Video
    MobileAds.initialize(getApplicationContext(), "ca-app-pub-3940256099942544/5224354917");
    mAd = MobileAds.getRewardedVideoAdInstance(this);
    mAd.setRewardedVideoAdListener(this);
    loadRewardedVideo();
}

private void loadRewardedVideo(){
    if(!mAd.isLoaded()){
        mAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build());
    }
}

public void ButtonPressed(View v) {
    if(mAd.isLoaded()){
        mAd.show();
    }
}

@Override
public void onRewardedVideoAdLoaded() {

}

@Override
public void onRewardedVideoAdOpened() {

}

@Override
public void onRewardedVideoStarted() {

}

@Override
public void onRewardedVideoAdClosed() {
    loadRewardedVideo();
}

@Override
public void onRewarded(RewardItem rewardItem) {
    //updateBalance();
    //startTimer();
    startActivity(new Intent(MainActivity.this, RoomOne.class));
}

@Override
public void onRewardedVideoAdLeftApplication() {

}

@Override
public void onRewardedVideoAdFailedToLoad(int i) {

}

@Override
protected void onPause() {
    mAd.pause(this);
    super.onPause();
}

@Override
protected void onResume() {
    mAd.resume(this);
    super.onResume();
}


任何帮助将不胜感激,谢谢!

最佳答案

如果奖励用户,只需使用带有布尔值的标志,然后设置flag == true,然后使用if(flag == true)之类的条件,则可以允许用户进行“房间活动”,

@Override
public void onRewarded(RewardItem rewardItem) {
  flag=true;
    startActivity(new Intent(MainActivity.this, RoomOne.class));
}


现在,当用户从“房间活动”中返回时,您必须像

(我创建了用于重定向RoomActivity的按钮,您可以使用自己的意图)

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if(flag==true){
                    startActivity(new Intent(MainActivity.this, RoomOne.class));
                }else {
                    Toast.makeText(MainActivity.this, "Plaese watch Video First", Toast.LENGTH_SHORT).show();
                }
            }
        });

10-08 09:01