Android 无法从远程服务解除绑定

Android 无法从远程服务解除绑定,android,android-service,Android,Android Service,我正在开发一个应用程序,它使用远程服务来完成一些通信和处理任务。应用程序运行良好,但我在从服务器解除绑定时遇到了一些问题,这使得应用程序不稳定。应用程序的架构如下所示: 见下图: 如您所见,我创建了一个名为Device的类的对象,在该类中启动服务HealthService,然后该服务启动另一个服务。设备和HealthService之间的通信通过AIDL进行。HealthService和BluetoothService之间的通信是通过消息进行的 通讯正常,然后我得到了数据。但是,当我想关闭此通信

我正在开发一个应用程序,它使用远程服务来完成一些通信和处理任务。应用程序运行良好,但我在从服务器解除绑定时遇到了一些问题,这使得应用程序不稳定。应用程序的架构如下所示:

见下图:

如您所见,我创建了一个名为Device的类的对象,在该类中启动服务HealthService,然后该服务启动另一个服务。设备和HealthService之间的通信通过AIDL进行。HealthService和BluetoothService之间的通信是通过消息进行的

通讯正常,然后我得到了数据。但是,当我想关闭此通信通道以允许其他设备稍后绑定时,绑定不起作用。这意味着我创建的所有设备都在监听和处理数据,即使我当时已解除绑定。这导致了许多我想解决的冲突

这里有一些代码:

设备(绑定健康服务):

设备(解除绑定健康服务):

isBinderAlive总是返回true

我试图用stopService破坏服务,但这会导致崩溃。关于onUnbind的服务已加入。我已经实现了,当调用onUnbind时,服务会从另一个服务中解除绑定以清理所有内容,但它会不断崩溃


有人能帮我吗?:)。如果需要,询问更多信息

我也遇到了同样的问题-绑定时调用ServiceConnection#onServiceConnected,但解除绑定ServiceConnection时,从未调用onServiceDisconnected。
        intent= new Intent("com.signove.health.service.HealthService");
    context.startService(intent);
    context.bindService(intent, serviceConnection, 0);
    context.unbindService(serviceConnection);
    Log.w("kill", "Device: Service connection unbinded");
    Log.w("kill", "Device: Binded = " + Boolean.toString(api.asBinder().isBinderAlive()));