yaorongkeji 2 hónapja
szülő
commit
ddc614d204

+ 29 - 4
home/src/main/java/com/yingyangfly/home/activity/HomeActivity.kt

@@ -240,10 +240,13 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
         })
     }
 
+    private var isTaskLoading = false // 顶部添加变量
     /**
      * 获取任务相关接口
      */
     private fun launchTask() {
+        if(isTaskLoading) return // 👈 防止重复请求
+        isTaskLoading = true
         runOnUiThread {
             //获取任务列表
             getFindMyTask()
@@ -256,6 +259,13 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
                 }
             }
         }
+        // 接口结束后重置
+        viewModel.findMyCurrentTask(fail = {
+            isTaskLoading = false
+        }, success = {
+            isTaskLoading = false
+            // ...
+        })
     }
 
     /**
@@ -297,6 +307,9 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
 //        })
 //    }
 
+    private var hasShowTipDialogToday = false
+
+
     /**
      * 查询是否有进行中的任务
      */
@@ -316,11 +329,13 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
                     }
                     if (it.currentTaskNum == it.totalTaskNum) {
                         if (TextUtils.equals("0", it.status)) {
+                            // 👇 双重判断:本地日期 + 页面内标记
+                            val today = User.getNowDay()
+                            val hasShowInSp = TextUtils.equals(today, User.getTaskDialogStatus())
                             //任务完成
-                            if (TextUtils.equals(User.getNowDay(), User.getTaskDialogStatus())
-                                    .not()
-                            ) {
-                                User.saveTaskDialogStatus(User.getNowDay())
+                            if (!hasShowInSp && !hasShowTipDialogToday) {
+                                hasShowTipDialogToday = true  // 页面内立即锁定
+                                User.saveTaskDialogStatus(today) // 持久化锁定
                                 showTipDialog()
                             } else {
                                 showLayout(true)
@@ -1067,4 +1082,14 @@ class HomeActivity : BaseMVVMActivity<ActivityHomeBinding, HomeViewModel>(), Vie
         return cn!!.className == activity.javaClass.name
     }
 
+    // 这是你本来就该有的销毁方法
+    override fun onDestroy() {
+        super.onDestroy()
+        // 👇 只需要加这一行
+        hasShowTipDialogToday = false
+
+        // 你原来的代码:停止语音播放
+        voicePlayer?.stop()
+    }
+
 }