gpt4 book ai didi

Android 在应用程序崩溃或退出时取消绑定(bind)服务

转载 作者:行者123 更新时间:2023-11-30 01:14:18 24 4
gpt4 key购买 nike

我正在开发绑定(bind)到 Android 服务的 Android 应用。

问题是 Android 服务负责与另一台设备的蓝牙连接。

目前,我的服务公开了一个 DisconnectBluetooth() 方法,它将结束蓝牙连接。

我所做的是在我的 onDestroy 方法中调用 DisconnectBluetooth 方法,然后调用 unbindService,所以当应用程序停止时, 蓝牙连接关闭,服务解除绑定(bind)。

问题是,如果我的应用程序崩溃,或者有时当我通过在应用程序选择器中滑动它来强制它退出时,onDestroy 方法不会被调用。然后应用程序将退出,但服务仍然存在,因此蓝牙连接也仍然存在。

我该怎么做才能确保关闭蓝牙连接,并在可能的情况下解除绑定(bind)服务?

@Override
protected void onDestroy() {
if (_api.isConnect()) { //<-- If bound to service, and everything OK
_api.DisonnectBluetooth(); //<-- Close BT connection with device
_api.ReleaseService(); //<-- Unbinds service
}
}
super.onDestroy();
}

最佳答案

我一直认为重写 onUnbind() 方法,只有在 Activity 显式调用 unbindService() 方法时才会被调用。

但是不,即使我的应用程序崩溃或通过滑动最近的应用程序选择器强制退出,它也会被调用。我决定使用 onunbind 而不是 onTaskRemoved

注意:我使用的是 Xamarin,我不能保证它能在 Java Android 上运行

关于Android 在应用程序崩溃或退出时取消绑定(bind)服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38098387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com