kunfei 3 лет назад
Родитель
Сommit
9a4c9760ac
1 измененных файлов с 7 добавлено и 4 удалено
  1. 7 4
      app/src/main/java/io/legado/app/utils/DelayLiveData.kt

+ 7 - 4
app/src/main/java/io/legado/app/utils/DelayLiveData.kt

@@ -16,15 +16,18 @@ class DelayLiveData<T>(val delay: Int) : LiveData<T>() {
         }
     }
 
+    @Synchronized
     public override fun postValue(value: T) {
         data = value
-        if (System.currentTimeMillis() >= postTime + delay) {
+        val postDelay = postTime + delay - System.currentTimeMillis()
+        if (postDelay > 0) {
             handler.removeCallbacks(sendRunnable)
-            postTime = System.currentTimeMillis()
-            super.postValue(value)
+            handler.postDelayed(sendRunnable, postDelay)
         } else {
             handler.removeCallbacks(sendRunnable)
-            handler.postDelayed(sendRunnable, delay - System.currentTimeMillis() + postTime)
+            postTime = System.currentTimeMillis()
+            super.postValue(value)
         }
     }
+
 }