2 Commits
Author SHA1 Message Date
lvmengandClaude Sonnet 4.6 eef13ff56e refactor(activity): 将 refreshFaceList 移至 insert 判断块外,确保删除操作后也触发刷新
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 09:15:00 +08:00
lvmengandClaude Sonnet 4.6 6c937c5f5f fix(activity): 修复 queryUserCount 在主线程执行 Room 查询导致崩溃的问题
- DB 查询改用 withContext(Dispatchers.IO) 切换至 IO 线程
- clearFace/clearFaceAndGetAll 操作完成后自动刷新用户计数
- 删除未使用的 CoroutineDispatcher import

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 09:07:48 +08:00
2 changed files with 5 additions and 4 deletions
@@ -493,8 +493,8 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
try {
if (faceList.isNotEmpty()) {
FaceDatabase.getInstance(this).faceDao().insert(faceList)
recognizeViewModel.refreshFaceList()
}
recognizeViewModel.refreshFaceList()
} catch (e: Exception) {
e.printStackTrace()
}
@@ -10,7 +10,6 @@ import com.sw.platecabinet.dialog.CustomDialog
import com.sw.platecabinet.ext.clickWithDebounce
import com.sw.platecabinet.utils.PlateUtils
import com.sw.platecabinet.utils.SpTool
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
@@ -45,6 +44,7 @@ class FunActivity : BaseActivity<ActivityFunBinding>() {
{
hideWaitingDialog()
ToastUtils.showToast("已清除")
queryUserCount()
}, 500
)
}
@@ -60,6 +60,7 @@ class FunActivity : BaseActivity<ActivityFunBinding>() {
ToastUtils.showToast(
if (status) "请求成功,$msg" else "请求失败,$msg"
)
queryUserCount()
}
}
}
@@ -117,8 +118,8 @@ class FunActivity : BaseActivity<ActivityFunBinding>() {
private fun queryUserCount() {
lifecycleScope.launch {
val faceDao = FaceDatabase.getInstance(this@FunActivity).faceDao()
val memberUserCount = faceDao.getFaceCount("1")
val tempUserCount = faceDao.getFaceCount("2")
val memberUserCount = withContext(Dispatchers.IO) { faceDao.getFaceCount("1") }
val tempUserCount = withContext(Dispatchers.IO) { faceDao.getFaceCount("2") }
binding.tvMemberUserCount.text = "会员用户:${memberUserCount}"
binding.tvTempUserCount.text = "临时用户:${tempUserCount}"
}