Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:将类实例与活动解耦以处理显示旋转?_Java_Android_Android Bluetooth - Fatal编程技术网

Java Android:将类实例与活动解耦以处理显示旋转?

Java Android:将类实例与活动解耦以处理显示旋转?,java,android,android-bluetooth,Java,Android,Android Bluetooth,我正在写一些蓝牙应用程序。因此,我编写了一个类,它使用线程和消息处理程序处理蓝牙通信。 目前,我在一个活动中创建了这个类的一个实例,我的Bluetooth类的这个实例建立了一个连接。好的 现在,当显示器旋转时,活动被破坏,我的Bluetooth类实例也被破坏,因此必须断开连接。我了解如何通过显示旋转来保存数据,并且我已经实现了重新创建的Bluetooth类实例将在旋转后自动重新连接 但是,我希望在旋转期间保持蓝牙连接,也就是说,我不仅希望在旋转期间保留一些数据,还希望保持Bluetooth类实例

我正在写一些蓝牙应用程序。因此,我编写了一个类,它使用线程和消息处理程序处理蓝牙通信。 目前,我在一个活动中创建了这个类的一个实例,我的Bluetooth类的这个实例建立了一个连接。好的

现在,当显示器旋转时,活动被破坏,我的Bluetooth类实例也被破坏,因此必须断开连接。我了解如何通过显示旋转来保存数据,并且我已经实现了重新创建的Bluetooth类实例将在旋转后自动重新连接

但是,我希望在旋转期间保持蓝牙连接,也就是说,我不仅希望在旋转期间保留一些数据,还希望保持Bluetooth类实例“活动”。但要做到这一点,我必须将Bluetooth类实例放在活动之外的某个保存位置


有没有办法做到这一点?

蓝牙连接是否应该在整个应用程序生命周期内保持活动状态?您可以在应用程序类中创建连接,也可以创建单例。@Zelldon:很好的提示。我甚至不知道存在应用程序类。我会查一查的!所以我试过了。工作原理是,我可以创建一个全局(静态)Bluetooth类实例,它可以在活动周期中生存。但是,当应用程序终止时,如何关闭全局Bluetooth类实例(例如关闭套接字)?我了解到onTerminate()只适用于模拟器,但不适用于真正的硬件。您有主要活动吗?哪个洞的时间?因此,您可以在onDestroy中关机,或者使用计数器计算如果最后一个活动被破坏会进行多少活动在destroy中关闭蓝牙。也许这样使用蓝牙服务更好