小张同志正在划水 2022-08-16 09:35 采纳率: 100%
浏览 40
已结题

ValueAnimator 静置一天导致UI卡顿

    ValueAnimator   mAnimator = ValueAnimator.ofFloat(0, mWaveWidth);
        mAnimator.setInterpolator(new LinearInterpolator());
        mAnimator.addUpdateListener(animation -> {
            mOffset = (float) animation.getAnimatedValue();
            mWavePath = getPath();
            invalidate();
        });
        mAnimator.setDuration(10000);
        mAnimator.setRepeatCount(ValueAnimator.INFINITE);
        mAnimator.start();

已经移除动画改成每2S一次invalidate(),没有问题了且CPU占用率稳定70+%
但这无限循环的代码,设备静置一天会提高CPU占用率,开始时是80+%,一天后是约为100%是为啥?

  • 写回答

1条回答 默认 最新

  • 灯塔@kuaidao 2022-08-16 10:25
    关注

    使用ide自带工具监测下是不是内存泄露导致问题。动画执行发生在界面可见时,界面不可见就停止渲染,这样可以优化下试试看效果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 8月25日
  • 已采纳回答 8月17日
  • 创建了问题 8月16日