diff --git a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt index db1574b..881eb33 100644 --- a/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt +++ b/app/src/main/java/com/casic/common/detector/gd/view/MainActivity.kt @@ -122,9 +122,15 @@ private val serviceConnection = object : ServiceConnection { override fun onServiceConnected(name: ComponentName?, iBinder: IBinder?) { - if (iBinder is SerialPortService.ServiceBinder) { - serialPortService = iBinder.getSerialPortService() - Log.d(kTag, "onServiceConnected: 服务已绑定") + if (name != null && iBinder != null && iBinder is SerialPortService.ServiceBinder) { + try { + serialPortService = iBinder.getSerialPortService() + Log.d(kTag, "onServiceConnected: 服务已绑定") + } catch (e: Exception) { + Log.e(kTag, "onServiceConnected: 绑定服务时发生异常", e) + } + } else { + Log.w(kTag, "onServiceConnected: name 或 iBinder 为 null") } } @@ -909,9 +915,8 @@ clusterOverlay?.onDestroy() binding.mapView.onDestroy() soundPool.autoPause() - serialPortService?.closeSerialPort() - unbindService(serviceConnection) locationKit.stopLocation() + unbindService(serviceConnection) BaseApplication.get().closeSerialPort() } } \ No newline at end of file