From 977c2dd0d2e66c4b1eb0d1915d682e832388cc49 Mon Sep 17 00:00:00 2001 From: dongliang Date: Mon, 27 Apr 2026 15:07:22 +0930 Subject: [PATCH] =?UTF-8?q?fix:=20updateStatus=20=E6=B7=BB=E5=8A=A0=20try-?= =?UTF-8?q?catch=20=E9=98=B2=E6=AD=A2=E7=B3=BB=E7=BB=9F=E5=85=B3=E6=9C=BA?= =?UTF-8?q?=E6=97=B6=20DeadSystemException?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 (1M context) --- .../com/xiaoqu/watch/ui/home/HomeFragment.kt | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt index bdae4a1..0b6d7a1 100644 --- a/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/xiaoqu/watch/ui/home/HomeFragment.kt @@ -24,6 +24,7 @@ import com.xiaoqu.watch.util.DeviceUtil import com.xiaoqu.watch.util.NetworkUtil import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.delay +import timber.log.Timber import kotlinx.coroutines.isActive import kotlinx.coroutines.launch import javax.inject.Inject @@ -104,21 +105,25 @@ class HomeFragment : BaseFragment() { } } - /** 更新状态信息显示 */ + /** 更新状态信息显示(try-catch 保护,防止系统关机时 DeadSystemException) */ private fun updateStatus() { - val dateInfo = DateUtil.getDateInfo() - val sb = StringBuilder() - sb.appendLine("${dateInfo.date} ${dateInfo.week} ${dateInfo.time}") - sb.appendLine("设备: ${devicePrefs.brand} ${devicePrefs.model}") - sb.appendLine("网络: ${NetworkUtil.getNetworkTypeName(requireContext())}") - sb.appendLine("绑定: ${if (userPrefs.isBound) "是" else "否"}") - // 电量信息(等收到广播后更新) - if (batteryLevel >= 0) { - sb.appendLine("电量: ${batteryLevel}% ${if (batteryCharging) "(充电中)" else ""}") + try { + val dateInfo = DateUtil.getDateInfo() + val sb = StringBuilder() + sb.appendLine("${dateInfo.date} ${dateInfo.week} ${dateInfo.time}") + sb.appendLine("设备: ${devicePrefs.brand} ${devicePrefs.model}") + sb.appendLine("网络: ${NetworkUtil.getNetworkTypeName(requireContext())}") + sb.appendLine("绑定: ${if (userPrefs.isBound) "是" else "否"}") + // 电量信息(等收到广播后更新) + if (batteryLevel >= 0) { + sb.appendLine("电量: ${batteryLevel}% ${if (batteryCharging) "(充电中)" else ""}") + } + sb.appendLine("屏幕: ${if (screenController.isScreenOn()) "亮" else "灭"}") + sb.appendLine("NFC: ${if (nfcController.isOpen()) "开" else "关"}") + binding.tvStatus.text = sb.toString() + } catch (e: Exception) { + Timber.w(e, "更新状态信息异常") } - sb.appendLine("屏幕: ${if (screenController.isScreenOn()) "亮" else "灭"}") - sb.appendLine("NFC: ${if (nfcController.isOpen()) "开" else "关"}") - binding.tvStatus.text = sb.toString() } /** 绑定测试按钮 */