要解决这个问题,您可以在观看完视频后手动销毁RewardedVideoAd所属的活动。以下是一个示例代码:
import com.google.android.gms.ads.reward.RewardItem;
import com.google.android.gms.ads.reward.RewardedVideoAd;
import com.google.android.gms.ads.reward.RewardedVideoAdListener;
public class MainActivity extends AppCompatActivity implements RewardedVideoAdListener {
private RewardedVideoAd rewardedVideoAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
rewardedVideoAd = MobileAds.getRewardedVideoAdInstance(this);
rewardedVideoAd.setRewardedVideoAdListener(this);
// 加载激励视频广告
loadRewardedVideoAd();
}
private void loadRewardedVideoAd() {
rewardedVideoAd.loadAd("YOUR_AD_UNIT_ID", new AdRequest.Builder().build());
}
@Override
public void onRewarded(RewardItem rewardItem) {
// 视频观看完成后的处理逻辑
// ...
// 销毁当前活动
finish();
}
@Override
public void onRewardedVideoAdLoaded() {
// 视频广告加载完成
if (rewardedVideoAd.isLoaded()) {
rewardedVideoAd.show();
}
}
// 其他回调方法...
@Override
protected void onDestroy() {
rewardedVideoAd.destroy();
super.onDestroy();
}
}
在上面的示例中,首先在onCreate
方法中初始化和设置RewardedVideoAd
实例,并在loadRewardedVideoAd
方法中加载激励视频广告。当视频观看完成时,onRewarded
方法将被调用,您可以在其中处理相应的逻辑,并在最后调用finish
方法销毁当前活动。
请确保替换示例代码中的YOUR_AD_UNIT_ID
为您自己的激励视频广告单元ID。另外,不要忘记在活动销毁时调用rewardedVideoAd.destroy()
来销毁RewardedVideoAd
实例,以避免内存泄漏问题。