【发布时间】:2012-02-08 01:48:09
【问题描述】:
我已经修改了 SDK 演示中的蓝牙聊天示例,以便能够控制 arduino 供电的蓝牙 LED 矩阵。使用聊天程序,我可以通过蓝牙向显示器发送消息。我有一个问题。我做了两个屏幕布局,一个纵向和一个横向。这样,无论方向如何,我都可以让界面占据手机上的最大空间。
问题在于,如果手机旋转,则会调用 OnDestroy() 来重新加载新布局(横向或纵向)。在 OnDestroy() 例程中,如果蓝牙链接已建立,我也会销毁它:
public void onDestroy() {
super.onDestroy();
// Stop the Bluetooth chat services
if (mChatService != null)
mChatService.stop();
if (D)
Log.e(TAG, "--- ON DESTROY ---");
}
阅读此处的其他帖子,我发现您可以通过在清单中添加“android:configChanges="orientation"”来防止服务停止。这样做,当我旋转屏幕时,我到显示器的蓝牙链接不再终止,但是现在屏幕不会在横向模式下重绘。
为了解决这个问题,我正在考虑删除“if mchatservice...”部分,该部分会终止连接,但是当应用程序最终退出时,我仍然需要运行代码。
有没有办法在旋转时重绘屏幕而不终止连接?如果没有,我想我总是可以将服务代码移到 OnPause() 事件中,但是如果应用程序失去前台焦点,这将终止连接。
还有其他方法吗?
谢谢。
【问题讨论】:
标签: android rotation screen ondestroy