我正在构建一个应用程序,它将读取传感器数据并将其存储到 kafka 中,并以休息 Controller 作为中间人。 (第一次使用传感器) UI由传感器名称+开始或停止发送传感器数据的开关按钮组成。 我正在尝试调节发送的传感器数据量,因为我的 Android 应用程序在某些传感器开始发送数据时无法跟上,我的 UI 只是阻塞。 我正在使用模拟器和名称中含有金鱼的传感器进行测试,它们正常工作,游戏旋转 vector 传感器、重力传感器和其他一些传感器刚刚开始发送大量数据,而应用程序无法跟上。 (我每次都用新线程发送数据)。
SensorManager.registerListener(sensorEventListener,sensor,500000000);
更改采样周期根本没有帮助,有些传感器正常工作,有些传感器只是不断发送大量数据,无论数量如何。
我尝试过,每次传感器更改事件时,新线程都会从发送数据开始,这样 UI 就能正常工作,但我的应用程序无法跟上某些传感器的速度。
public void onSensorChanged(SensorEvent sensorEvent) {
Thread t = new Thread(new MyOwnRunnableClass(sensorEvent,username));
t.start();
}
最佳答案
- 制作一个原生应用来学习传感器
- 不要在每次传感器更新时创建线程,因为每个线程都会产生开销。您需要一个线程来管理传感器,一个线程用于用户界面。应该够了。
- 如果您的需要太多,您的传感器线程可能会丢失读数(只需处理十分之一)
- 当我在 Android 原生中进行开发时,采样率或多或少地起作用。
- 阅读教程,使用传感器是移动设备的关键,因此每个框架都有关于如何正确使用传感器的教程
祝你好运
关于java - 如何限制某些传感器每隔几秒发送一次数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58791869/