相关疑难解决方法(0)

使用onSaveInstanceState在Android应用程序中保持线程和连接状态?

我正在为android开发一个多人游戏应用程序.其中一个参与者充当主持人(创建游戏实例的人),其他每个参与者都使用蓝牙连接到主机.

我的问题如下,这个主机有一些线程运行,以便进行通信并保存所有打开的连接.我已经读过我的活动可以暂时销毁并稍后恢复,我应该使用onSaveInstanceState机制.但是,我说的是一个充当游戏"服务器"的应用程序,它有开放的连接和服务于其他客户端的线程,如果操作系统决定破坏我的活动,这些连接和线程会发生什么?他们被终止了吗?如果是这样,为了正确实现这一点,推荐的模式是什么,如何在onSaveInstanceState包上保持连接?它不可序列化.线程也一样,我是否需要在销毁时和活动恢复时重新创建并销毁它们?如果我在一个代表游戏状态的静态类中保持所有这种状态?如果我这样做,操作系统会不会破坏我的线程/连接?

我查看了SDK附带的示例蓝牙聊天,因此我没有处理onSaveInstanceState,所以我不知道该怎么办.

谢谢!

android bluetooth android-lifecycle

6
推荐指数
1
解决办法
3121
查看次数

在 Android 上的活动之间保持蓝牙连接

可能的重复:
Android:如何将蓝牙连接传递给另一个活动?

我有一个应用程序,我将在其中通过蓝牙连接传输数据。

在我的概念验证应用程序中,我能够将蓝牙通信放在不同的线程中,并将所有其他工作保留在同一活动上(使用 ViewFlipper)。

然而,对于我的下一次迭代,我将需要使用几个不同的“屏幕”(活动)。流程大概是这样的:

我的初始活动将连接到我将从中获取数据的蓝牙设备。

“主要”活动中的一项活动是从 BT 设备获取数据列表并将其显示在列表视图中。然后,当我单击某个项目时,我需要获得更详细的数据视图(这在另一个活动中显示,但还必须访问 BT 连接)。

除了“主要”活动之外,还会有其他特定活动。

所以我的问题是,管理该问题的最佳方法是什么,我一次启动蓝牙连接,而不必为每个活动再次启动它?

android bluetooth android-activity

5
推荐指数
1
解决办法
6886
查看次数