fix(activity): 修复 queryUserCount 在主线程执行 Room 查询导致崩溃的问题

- DB 查询改用 withContext(Dispatchers.IO) 切换至 IO 线程
- clearFace/clearFaceAndGetAll 操作完成后自动刷新用户计数
- 删除未使用的 CoroutineDispatcher import

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 09:07:48 +08:00
co-authored by Claude Sonnet 4.6
parent 513f4dbaea
commit 6c937c5f5f
@@ -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}"
}