首先:出现此问题时不会抛出异常。
我的应用目前在 Google Plays 封闭 Alpha 版程序中运行。当我使用 Android Studio 提供的模拟器或我自己的 Galaxy A5 测试该应用程序时,一切正常且符合预期。
现在我收到了我的 alpha 测试人员的报告,他们的应用在关闭 VideoAd 后关闭。经过一段时间的调查,我意识到谷歌在执行发布前测试时使用的所有设备都有同样的问题(谷歌提供的视频可见)。
由于没有抛出异常,我完全不知道如何调试这种行为。以下是 onRewarded 方法的代码(监听器的其他方法不包含任何代码):
@Override
public void onRewarded(RewardItem rewardItem) {
int amount = calculateAdReward(rewardItem.getAmount());
updateCoins(amount);
rewardedAmount = amount;
rewarded = true;
}
奖励金额和奖励是私有字段,用于实例化活动 onResume 方法中的片段:
@Override
protected void onResume() {
super.onResume();
mAdVideo.resume(this);
if(rewarded){
loadFragment(RewardFragment.newInstance(rewardedAmount);
rewardedAmount = 0;
rewarded = false;
}
}
我的目标是在用户获得奖励后显示一个包含奖励金额的片段。我的第一次尝试如下:
@Override
public void onRewarded(RewardItem rewardItem) {
int amount = calculateAdReward(rewardItem.getAmount());
updateCoins(amount);
loadFragment(RewardFragment.newInstance(amount));
}
失败了,因为我在调用 saveInstanceState 后尝试实例化一个片段。