首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当RewardedVideoAd关闭时,App就会关闭。显示片段onAdClose?

当RewardedVideoAd关闭时,App就会关闭。显示片段onAdClose?
EN

Stack Overflow用户
提问于 2017-11-20 01:14:51
回答 1查看 44关注 0票数 0

首先:当发生此问题时,不会抛出任何异常。

我的应用程序目前运行在谷歌播放关闭的alpha程序。当我使用Android提供的仿真器或者使用我自己的GalaxyA5测试这个应用程序时,一切都很好,一切都如愿以偿。

现在我收到了我的阿尔法测试员的报告,他们的应用程序在关闭VideoAd之后就要关闭了。经过一段时间的调查后,我意识到谷歌在进行启动前测试时使用的所有设备都有同样的问题(由谷歌提供的视频可以看到)。

因为没有异常抛出,所以我完全不知道如何调试这种行为。下面是onRewarded方法的代码(侦听器的其他方法不包含任何代码):

代码语言:javascript
复制
@Override
public void onRewarded(RewardItem rewardItem) {
    int amount = calculateAdReward(rewardItem.getAmount());
    updateCoins(amount);
    rewardedAmount = amount;
    rewarded = true;
}

在activitys onResume-方法中,用于实例化片段的私有字段是rewardedAmount和used:

代码语言:javascript
复制
@Override
protected void onResume() {
    super.onResume();
    mAdVideo.resume(this);
    if(rewarded){
        loadFragment(RewardFragment.newInstance(rewardedAmount);
        rewardedAmount = 0;
        rewarded = false;
    }
}

我的目标是在用户获得奖励后显示一个片段,该片段持有奖励金额。我的第一次尝试如下:

代码语言:javascript
复制
@Override
public void onRewarded(RewardItem rewardItem) {
    int amount = calculateAdReward(rewardItem.getAmount());
    updateCoins(amount);
    loadFragment(RewardFragment.newInstance(amount));
}

它失败了,因为我试图在调用saveInstanceState之后实例化一个片段。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-23 11:46:36

经过一番研究,我解决了我的问题。

我学到的是:从不在活动的生命周期方法 (onResume,.)中执行事务因为当您到达事务代码时,活动可能还没有完全恢复。

相反,在onPostResume方法中执行事务。当调用此方法时,将保证您的活动和它的所有片段都已完全恢复,执行事务是“保存”。

顺便提一句:如果您不一定要使用,则不要在这些方法中执行事务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47383809

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档