我有一个包含三个片段的导航菜单的活动:
( 1)家庭(带有频道改变和音量变化按钮) 2)蓝牙连接(与外部蓝牙设备连接) 3)设置(其中查找条改变蓝牙设备的静音)
当应用程序打开时,所有导航按钮都可以打开各个片段。
当我进入蓝牙连接片段,它带我到手机的设置设置蓝牙连接到外部蓝牙设备,应用程序将带您到Home片段。
Home片段中的所有按钮(通道和音量更改按钮)都可以与外部设备交互(灯光闪烁以显示交互)。但是,在与按钮交互后,导航按钮到其他片段(设置片段和蓝牙片段)不工作(片段不会出现/拉出)。
此外,另一个bug是,如果我打开应用程序并转到Settings片段,那么Home片段中的所有按钮(通道和音量更改按钮、外部蓝牙设备中的灯都不能工作)都不能工作。
更新
好的,所以我发现一个有趣的观察结果是,如果我最初从未去过Home片段,并且直接去过Settings片段,那么Settings片段中的squelch按钮也能工作。
我正在实验一个我用活动而不是片段构建的原型,它在蓝牙连接方面表现出了类似的行为,如果我在活动之间切换而没有正确地关闭连接的话。
这使我相信,当我在片段之间切换时,连接没有正确关闭,从而导致按钮无法工作(外部设备不眨眼)。
问题-当使视图不可见时,如何关闭连接?
谢谢!
请给我建议。
发布于 2016-06-27 20:35:18
我不能直接谈论你所描述的所有问题,但我要说的是,在过去,我也遇到过使用片段的行为问题,而当我没有考虑到工作流发生时。具体来说,您希望确保您使用的片段管理器(用于处理分段转换)既了解碎片堆栈中的位置(也应该是),也知道您的后台应该包含哪些项。
例如,我遇到的一个问题是我没有正确地处理设备旋转,导致我的活动/片段被重新创建,这反过来破坏了我的片段堆栈。当使用后退按钮在应用程序中导航时,这会导致奇怪,例如UI元素没有正确响应,或者出现在它们不应该响应的时候。
我不知道碎片和手机设置之间的移动会对你产生什么负面影响,但一般来说,当你离开你的应用程序或重新启动活动时,跟踪你的savedInstanceStates和onResult是很重要的。
发布于 2016-06-29 16:28:54
我让我的应用程序按我想的方式工作。
我所做的是在每次打开一个新的片段时打开一个新的蓝牙连接,所以我怀疑如果我没有在视图更改时正确地关闭它,那么每个连接都是相互冲突的。
我所做的修复工作是在活动打开时打开一个单一的全局蓝牙连接,让各个片段访问蓝牙连接变量。
谢谢。
https://stackoverflow.com/questions/38059269
复制相似问题