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 { try {
if (faceList.isNotEmpty()) { if (faceList.isNotEmpty()) {
FaceDatabase.getInstance(this).faceDao().insert(faceList) FaceDatabase.getInstance(this).faceDao().insert(faceList)
recognizeViewModel.refreshFaceList()
} }
recognizeViewModel.refreshFaceList()
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() e.printStackTrace()
} }
@@ -10,7 +10,6 @@ import com.sw.platecabinet.dialog.CustomDialog
import com.sw.platecabinet.ext.clickWithDebounce import com.sw.platecabinet.ext.clickWithDebounce
import com.sw.platecabinet.utils.PlateUtils import com.sw.platecabinet.utils.PlateUtils
import com.sw.platecabinet.utils.SpTool import com.sw.platecabinet.utils.SpTool
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@@ -45,6 +44,7 @@ class FunActivity : BaseActivity<ActivityFunBinding>() {
{ {
hideWaitingDialog() hideWaitingDialog()
ToastUtils.showToast("已清除") ToastUtils.showToast("已清除")
queryUserCount()
}, 500 }, 500
) )
} }
@@ -60,6 +60,7 @@ class FunActivity : BaseActivity<ActivityFunBinding>() {
ToastUtils.showToast( ToastUtils.showToast(
if (status) "请求成功,$msg" else "请求失败,$msg" if (status) "请求成功,$msg" else "请求失败,$msg"
) )
queryUserCount()
} }
} }
} }
@@ -117,8 +118,8 @@ class FunActivity : BaseActivity<ActivityFunBinding>() {
private fun queryUserCount() { private fun queryUserCount() {
lifecycleScope.launch { lifecycleScope.launch {
val faceDao = FaceDatabase.getInstance(this@FunActivity).faceDao() val faceDao = FaceDatabase.getInstance(this@FunActivity).faceDao()
val memberUserCount = faceDao.getFaceCount("1") val memberUserCount = withContext(Dispatchers.IO) { faceDao.getFaceCount("1") }
val tempUserCount = faceDao.getFaceCount("2") val tempUserCount = withContext(Dispatchers.IO) { faceDao.getFaceCount("2") }
binding.tvMemberUserCount.text = "会员用户:${memberUserCount}" binding.tvMemberUserCount.text = "会员用户:${memberUserCount}"
binding.tvTempUserCount.text = "临时用户:${tempUserCount}" binding.tvTempUserCount.text = "临时用户:${tempUserCount}"
} }