我的应用程序由两个活动组成: MainActivity和RoomOne,当用户按下一个按钮时,会显示一个奖励视频广告,作为奖励,用户可以访问RoomOne活动,但是当用户被带到RoomOne活动时,当他返回到MainActivity时,他不能再次转到RoomOne,因为奖励视频广告拒绝显示,所以是这样的:
1-用户启动应用程序。
2-用户想要访问RoomOne,因此按下一个按钮。
3-奖励视频广告成功显示,当它完成广告奖励用户将他带到RoomOne。
4-用户已经在RoomOne中完成了他想要做的事情,并按下back按钮返回到MainActivity。
5-他被带到MainActivity。
6-现在他想回到RoomOne,但他不能,因为当他按下按钮时,广告没有显示,现在他需要重新启动应用程序才能再次进入。
我试图弄清楚Toast和logs是怎么回事,似乎当AdMob奖励的视频加载到活动中,然后用户转到另一个活动并返回到原始活动时,SDK无法加载广告。我的SDK设置正确,它正常加载奖励视频,但当用户切换活动时,它似乎会中断,但如果他停留在相同的活动,广告视频通常会一个接一个地显示。
我的代码:
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();
}
如有任何帮助,将不胜感激,谢谢!
发布于 2018-04-25 10:29:28
只需将标志与布尔值一起使用如果用户被奖励,则设置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();
}
}
});
发布于 2018-04-25 10:41:03
在onResume而不是onCreate中加载奖励视频广告:
@Override
protected void onResume() {
super.onResume();
loadRewardedVideo();
}
https://stackoverflow.com/questions/50019627
复制