gpt4 book ai didi

java - 加载奖励视频广告时显示进度条

转载 作者:行者123 更新时间:2023-11-30 00:09:48 25 4
gpt4 key购买 nike

我想使用激励视频广告 (Admob),但我想在视频广告加载时显示进度条
我已经尝试使用异步任务来完成它,只是为了看看视频是否会加载,但没有成功

     @SuppressLint("StaticFieldLeak")
public class videoAd extends AsyncTask<Void, Void, Void> {

@Override
protected void doInBackground(Void... voids) {

runOnUiThread(new Runnable() {
@Override
public void run() {
mRewardedVideoAd.loadAd("ca-app-pub-3940256099942544/5224354917", new AdRequest.Builder().build());
}
});
}

@Override
protected void onPostExecute(Integer integer) {
super.onPostExecute(integer);
if (mRewardedVideoAd.isLoaded()){

Toast.makeText(SetFullWallpaper.this, "Video loaded", Toast.LENGTH_SHORT).show();
mRewardedVideoAd.show();
}
}
}

现在如果视频还没有加载我想加载一个进度条
谢谢

最佳答案

我是这样做的:

我有一个按钮,点击它会显示广告,所以我有一个 boolean 变量来跟踪按钮是否被点击:

boolean buttonClicked = false

这些行在我的 onCreate 函数中:

    mRewardedVideoAd = MobileAds.getRewardedVideoAdInstance(getContext());
rewardedVideoAdListener = new RewardedVideoAdListener() {
@Override
public void onRewardedVideoAdLoaded() {
if(buttonClicked) {
showAd();
}
}

@Override
public void onRewardedVideoAdOpened() {

}

@Override
public void onRewardedVideoStarted() {

}

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

@Override
public void onRewarded(RewardItem rewardItem) {

}

@Override
public void onRewardedVideoAdLeftApplication() {

}

@Override
public void onRewardedVideoAdFailedToLoad(int i) {
if(buttonClicked) {
progressBar.setVisibility(View.INVISIBLE);
Toast toast = Toast.makeText(getContext(), "Please try again later", Toast.LENGTH_SHORT);
toast.show();
}
}

@Override
public void onRewardedVideoCompleted() {

}
};

mRewardedVideoAd.setRewardedVideoAdListener(rewardedVideoAdListener);

loadRewardedVideoAd();

pointsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showAd();
}
});

这是我的 showAd 函数:

public void showAd(){
if (mRewardedVideoAd.isLoaded()) {
progressBar.setVisibility(View.GONE);
mRewardedVideoAd.show();
buttonClicked = false;
} else {
loadRewardedVideoAd();
progressBar.setVisibility(View.VISIBLE);
buttonClicked = true;
}
}

这是如何工作的,当创建 Activity/fragment 时,应用会尝试通过调用 loadRewaredVideoAd() 函数在后台加载广告。然后,当用户单击该按钮时,将调用 showAd() 函数并发生以下两种情况之一:

  • 1) 如果广告加载成功,则显示该广告。
  • 2) 如果没有,它会再次调用 loadRewardedVideoAd() 并显示进度条。它还将 buttonClicked 设置为 true。然后,如果广告加载,将调用 onRewardedVideoAdLoaded() 函数,该函数会再次调用 showAd(),这次第一个选项发生。如果这次广告也没有加载,则会调用 onRewardedVideoAdFailedToLoad(int i) 并显示 toast ,提示用户稍后再试。

关于java - 加载奖励视频广告时显示进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48325879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com