繁体   English   中英

Android后台任务和生命周期

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM