我正在为android开发一个多人游戏应用程序.其中一个参与者充当主持人(创建游戏实例的人),其他每个参与者都使用蓝牙连接到主机.
我的问题如下,这个主机有一些线程运行,以便进行通信并保存所有打开的连接.我已经读过我的活动可以暂时销毁并稍后恢复,我应该使用onSaveInstanceState机制.但是,我说的是一个充当游戏"服务器"的应用程序,它有开放的连接和服务于其他客户端的线程,如果操作系统决定破坏我的活动,这些连接和线程会发生什么?他们被终止了吗?如果是这样,为了正确实现这一点,推荐的模式是什么,如何在onSaveInstanceState包上保持连接?它不可序列化.线程也一样,我是否需要在销毁时和活动恢复时重新创建并销毁它们?如果我在一个代表游戏状态的静态类中保持所有这种状态?如果我这样做,操作系统会不会破坏我的线程/连接?
我查看了SDK附带的示例蓝牙聊天,因此我没有处理onSaveInstanceState,所以我不知道该怎么办.
谢谢!
可能的重复:
Android:如何将蓝牙连接传递给另一个活动?
我有一个应用程序,我将在其中通过蓝牙连接传输数据。
在我的概念验证应用程序中,我能够将蓝牙通信放在不同的线程中,并将所有其他工作保留在同一活动上(使用 ViewFlipper)。
然而,对于我的下一次迭代,我将需要使用几个不同的“屏幕”(活动)。流程大概是这样的:
我的初始活动将连接到我将从中获取数据的蓝牙设备。
“主要”活动中的一项活动是从 BT 设备获取数据列表并将其显示在列表视图中。然后,当我单击某个项目时,我需要获得更详细的数据视图(这在另一个活动中显示,但还必须访问 BT 连接)。
除了“主要”活动之外,还会有其他特定活动。
所以我的问题是,管理该问题的最佳方法是什么,我一次启动蓝牙连接,而不必为每个活动再次启动它?