Android奖励的视频广告在应用程序关闭后不会再次加载

Android奖励的视频广告在应用程序关闭后不会再次加载,android,firebase,admob,Android,Firebase,Admob,我是Android奖励视频广告的新手。我尝试创建一个带有奖励视频广告的应用程序,如中所述 应用程序中有一个按钮,允许用户查看视频。该按钮在加载视频后启用 第一次打开应用程序时,一切正常。我可以按这个按钮看几个视频广告。问题是,在我关闭应用程序后,按下后退按钮,然后再次打开它。然后,广告再也不会加载了。我没有收到来自RewardedVideoAdListener的任何消息,我在非常有用的地方敬酒。根本没有反馈。我应该可以在“onRewardedVideoAdFailedToLoad”中观看祝酒词,

我是Android奖励视频广告的新手。我尝试创建一个带有奖励视频广告的应用程序,如中所述

应用程序中有一个按钮,允许用户查看视频。该按钮在加载视频后启用

第一次打开应用程序时,一切正常。我可以按这个按钮看几个视频广告。问题是,在我关闭应用程序后,按下后退按钮,然后再次打开它。然后,广告再也不会加载了。我没有收到来自RewardedVideoAdListener的任何消息,我在非常有用的地方敬酒。根本没有反馈。我应该可以在“onRewardedVideoAdFailedToLoad”中观看祝酒词,但即使这样也不会发生。这就好像代码完全无法执行一样

正如我所说,我对Android奖励视频广告还不熟悉。也许我做错了什么,但我不知道是什么。我已经在网上搜索过了,但找不到任何答案。有些人提到加载广告时的问题,但没有提到在应用程序关闭并再次打开后不加载广告的具体问题。我也检查了这个问题,但没有人回答:

我在不同的手机上运行这个应用程序,我总是发现这个问题

有人能帮我吗

对不起我的英语。我不是以英语为母语的人

以下是我的主要活动中的代码:

public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {

    private Button mWatchButton;
    private TextView mRewardLabel;
    private RewardedVideoAd mAd;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        mWatchButton = (Button)findViewById(R.id.btn_watch);

        mAd = MobileAds.getRewardedVideoAdInstance(this);
        mAd.setRewardedVideoAdListener(this);
        loadAd();

        mWatchButton.setEnabled(false);
        mWatchButton.setOnClickListener(new View.OnClickListener(){
                @Override
                public void onClick(View v) {
                    if(mAd.isLoaded()){
                        mAd.show();
                    }
                }
            }
        );

        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

    @Override
    public void onRewardedVideoAdLoaded() {
        mWatchButton.setEnabled(true);
        Toast.makeText(this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRewardedVideoAdOpened() {
        Toast.makeText(this, "onRewardedVideoAdOpened", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRewardedVideoStarted() {
        Toast.makeText(this, "onRewardedVideoStarted", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRewardedVideoAdClosed() {
        Toast.makeText(this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
        mWatchButton.setEnabled(false);
        loadAd();
    }

    @Override
    public void onRewarded(RewardItem rewardItem) {
        Toast.makeText(this, "onRewarded", Toast.LENGTH_SHORT).show();
        mRewardLabel.setText(String.format(Locale.getDefault(), "You got %d %s!", rewardItem.getAmount(), rewardItem.getType()));
    }

    @Override
    public void onRewardedVideoAdLeftApplication() {
        Toast.makeText(this, "onRewardedVideoAdLeftApplication", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRewardedVideoAdFailedToLoad(int i) {
        Toast.makeText(this, "onRewardedVideoAdFailedToLoad", Toast.LENGTH_SHORT).show();
    }


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

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

    @Override
    public void onDestroy() {
        super.onDestroy();
        mAd.destroy(this);
    }


}
以下是我的布局中的代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context="com.xxxxxx.MainActivity"
    tools:showIn="@layout/activity_main">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!"
        android:id="@+id/textView" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ver o anúncio"
        android:id="@+id/btn_watch"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="58dp"/>

</RelativeLayout>


当应用程序再次进入前台时,请求另一个广告:

@Override
public void onResume() {
    super.onResume();
    loadAd();
}

非常感谢。那真是救命稻草!尽管如此,我还是需要做一些修改才能让它正常工作。看起来是这样!loadAd()函数中的mAd.isLoaded()始终返回true,因此ad从未重新初始化。奇怪。。。因此,我的新loadAd()函数是:private void loadAd(){//if(!mAd.isLoaded()){mAd=null;mAd=MobileAds.getrewardedvideoadstance(this);mAd.setRewardedVideoAdListener(this);mAd.loadAd(“ca-app-pub-3940256099942544/5224354917”,new-AdRequest.Builder().build());//}})
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
        compile 'com.android.support:design:23.4.0'
        compile 'com.google.firebase:firebase-ads:9.4.0'
    }

apply plugin: 'com.google.gms.google-services'
@Override
public void onResume() {
    super.onResume();
    loadAd();
}