BLE黑屏后导致APP崩溃

场景1:手机刚刚重启完,运行APP与BLE设备通信,正常无问题(任何情况)
场景2:中断当前BLE操作,退出APP,然后重新与BLE设备通信,一旦把APP切换到后台并黑屏,APP会在几秒内崩溃,logcat没任何错误输出

求大神解答,跪求,以下是捕抓的bug输出(bugly也抓不到),但是重启手机后第一次正常操作,往后就一直会出现描述的问题
04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: An exception was thrown by callback 'btgattc_notify_cb'.
04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: android.os.DeadObjectException
at android.os.BinderProxy.transact(Native Method)
at android.bluetooth.IBluetoothGattCallback$Stub$Proxy.onNotify(IBluetoothGattCallback.java:835)
at com.android.bluetooth.gatt.GattService.onNotify(GattService.java:724)
at dalvik.system.NativeStart.run(Native Method)
04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btif_gattc_upstreams_evt: Event 10
04-18 17:58:03.578 2971-3014/? E/bt-btif: HAL bt_gatt_callbacks->client->notify_cb
04-18 17:58:03.578 2971-3014/? D/BtGatt.GattService: onNotify() - address=F0:C7:7F:73:68:20, charUuid=0000ffb2-0000-1000-8000-00805f9b34fb, length=19
04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: An exception was thrown by callback 'btgattc_notify_cb'.
04-18 17:58:03.578 2971-3014/? E/BluetoothServiceJni: android.os.DeadObjectException
at android.os.BinderProxy.transact(Native Method)
at android.bluetooth.IBluetoothGattCallback$Stub$Proxy.onNotify(IBluetoothGattCallback.java:835)
at com.android.bluetooth.gatt.GattService.onNotify(GattService.java:724)
at dalvik.system.NativeStart.run(Native Method)
04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: Binder is dead - unregistering client (6)!
04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: stopScan() - queue=0
04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: stopScan() - queue empty; stopping scan
04-18 17:58:03.578 2971-2982/? D/BtGatt.btif: btif_gattc_scan
04-18 17:58:03.578 2971-2982/? D/BtGatt.GattService: unregisterClient() - clientIf=6
04-18 17:58:03.578 2971-2982/? D/BtGatt.btif: btif_gattc_unregister_app
04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btgattc_handle_event: Event 1003
04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btgattc_handle_event: Event 1001
04-18 17:58:03.578 2971-3088/? W/bt-l2cap: L2CA_RemoveFixedChnl() CID: 0x0004 BDA: f0c77f736820 not connected
04-18 17:58:03.578 1156-1539/? D/KeyguardViewMediator: setHidden false
04-18 17:58:03.578 1156-1539/? D/KeyguardUpdateMonitor: sendKeyguardVisibilityChanged(true)
04-18 17:58:03.578 1156-1156/? D/KeyguardUpdateMonitor: handleKeyguardVisibilityChanged(1)
04-18 17:58:03.578 2971-3014/? D/BtGatt.btif: btif_gattc_upstreams_evt: Event 5
04-18 17:58:03.578 2971-3014/? E/bt-btif: HAL bt_gatt_callbacks->client->close_cb
04-18 17:58:03.578 2971-3014/? D/BtGatt.GattService: onDisconnected() - clientIf=6, connId=6, address=F0:C7:7F:73:68:20
04-18 17:58:03.578 2971-3014/? E/BtGatt.ContextMap: Context not found for ID 6

android ble很多坑,你只要理解了android ble具体的通信流程就会找到问题,我也做android ble应用,一堆坑,我现在单个连接通信没什么问题,一旦
重复连接,多个设备,会发现有时无法完全断开,反正闹心

以前研究过一段时间Android,当然现在不做了,主要做后台,我记得AndroidApp它的Activity或者fragment是有生命周期的!退出app是调用了stop方法,好像,退到后台是调用的休眠还是等待忘了,呢个方法,从App从后台状态到显示状态好像会走3个方法,其中一个是onResume,所以你要考虑的情况是如果在后台的时候,在调用方法之前我应该做什么事?保存什么数据?,在从后台到显示,我应该恢复什么数据?这些我觉得是必要的,当然现在不做这个了,可能还不对那,另外,其实我觉得你的这种情况不建议用Activity或者Fragment,可以用服务(service)来做,反正你在后台的时候也需要运行啊,但是Activity在后台就会进入"休眠"状态,所以我觉得用服务(service)来解决最好,我记得Android有4大核心组件,Activity,Service,BroadCastReceiver(单词可能拼错,太长了),还有一个忘了,