Не правильно работает анимация

У меня есть анимация для кнопки

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
    <rotate
        android:duration="70"
        android:fromDegrees="-3"
        android:toDegrees="3"
        android:pivotX="50%"
        android:pivotY="50%"
        android:repeatCount="4"
        android:repeatMode="reverse"
        android:interpolator="@android:anim/linear_interpolator" />
    <translate
        android:fromXDelta="-6"
        android:toXDelta="6"
        android:repeatCount="4"
        android:repeatMode="reverse"
        android:interpolator="@android:anim/linear_interpolator"
        android:duration="70" />
</set>

В коде я ее запускаю

val AnimUtils = AnimationUtils.loadAnimation(activity, R.anim.btn_shake)
Handler().postDelayed({
    button.startAnimation(AnimUtils)
}, 3000)
AnimUtils.setAnimationListener(object : Animation.AnimationListener {
   override fun onAnimationRepeat(animation: Animation?) {}

   override fun onAnimationEnd(animation: Animation?) {
       Handler().postDelayed({
            button.startAnimation(AnimUtils)
       }, 5000)
   }

   override fun onAnimationStart(animation: Animation?) {}
})

Но я не уверен на сколько это правильный подход. Пытаюсь останавливать ее в onPause(), но она не останавливается.

override fun onPause() {
   super.onPause()
   AnimUtils.cancel()
}

Подскажите пожалуйста, как можно сделать по другому, чтобы после захода в приложение, через 3с отрабатывала анимация и затем повторялась каждые 5с и правильно останавливалась при onPause()?! Нужно чтобы после сворачивания приложения или при возврате с другого фрагмента, анимация отрабатывала так же 3с задержки, потом раз в 5с.


Ответы (0 шт):