![](/img/trans.png)
[英]Android background processing, handle result and Activity lifecycle
[英]Android background task and lifecycle
我正在开发一个连接蓝牙设备的应用程序,每隔0.25秒接收一条消息,然后在屏幕上显示该数据。 用户还可以任意开始/停止将此数据记录到SD卡上的文件中。
我尝试扩展一个侦听来自BT设备的消息的线程类,然后使用处理程序将数据发送回UI线程并显示它。
这工作正常,但在配置更改,如屏幕旋转,当活动被销毁和重新创建时,BT线程被复制,我不能再与它通信。 我没有问题,如果我在onStop()中停止BT线程并在onResume()中重新启动它,但是我需要重新连接到BT设备,如果用户正在记录数据,那就会被破坏。
完成此功能的正确方法是什么? 有没有办法设置我的线程,所以它没有重复,所以我可以在配置更改后重新连接到它? 我是否应该为我的BT连接和日志记录查看服务,然后以某种方式从服务获取要在UI上显示的提要?
谢谢!
我是否应该为我的BT连接和日志记录查看服务,然后以某种方式从服务获取要在UI上显示的提要?
是的你应该。 我认为这是一个很好的方法。 您应该在服务中运行线程日志数据,并将需要传递的数据放入共享首选项中的主UI或活动,这将为任何活动提供对信息的访问权限。
我认为这是实现这一目标的最佳方式。
要么
您可以使用alex.veprik提供的方法
您可以阻止您的活动在配置更改时重新创建。 只需修改清单文件:
<activity android:name=".MyActivity"
android:configChanges="keyboard|keyboardHidden|orientation" />
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.