我正在开发一个使用远程服务器进行某些通信和处理任务的应用程序。该应用程序运行良好,但我有一些问题,从服务器unbind,使应用程序不稳定。该应用程序的架构如下:
见图: https://docs.google.com/open?id=0B8aFlQkvXrcqbEFhSnRpVzJab3M
正如您所看到的,我创建了一个名为Device的类的对象,然后启动服务HealthService,然后此服务启动另一个服务。 Device和HealthService之间的通信是AIDL。 HealthService和BluetoothService之间的通信是使用Message。
通讯工作正常,然后我得到了数据。但是当我想关闭这个通信通道以允许其他设备稍后绑定时,绑定不起作用。这意味着我创建的所有设备都在监听和处理数据,即使我已经解除了绑定。它引发了许多我想要解决的冲突。
这里有一些代码:
设备(绑定健康服务):
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()));
isBinderAlive始终返回true ...
我试图用stopService销毁服务,但这会导致崩溃。 onUnbind上的服务已加入。我已经实现了,当调用onUnbind时,服务从其他服务中获取unBind来清理所有内容,但它一直在崩溃。
有人可以帮帮我吗? :)。如果需要,请询问更多信息