我正在构建一个应用程序,将读取传感器数据,并将其存储到kafka与rest控制器作为中间人。(首次使用传感器) UI由传感器名称+开关按钮组成,用于开始或停止发送传感器数据。我正在尝试控制发送多少传感器数据,因为当一些传感器开始发送数据时,我的android应用程序无法跟上它们,我的UI就会阻塞。我测试了Emulator和传感器,里面有金鱼的名字,它们工作正常,游戏旋转矢量传感器,重力传感器和其他几个刚刚开始发送大量数据和应用程序无法跟上。(我每次都用新线程发送数据)。
SensorManager.registerListener(sensorEventListener,sensor,500000000);更改samplingPeriod根本没有任何帮助,一些传感器工作正常,而另一些则继续发送大量数据,而不管数据是多少。
我试过了,每次传感器改变事件,新的线程都从发送数据开始,这样UI就可以正常工作了,但是我的应用程序跟不上一些传感器。
public void onSensorChanged(SensorEvent sensorEvent) {
Thread t = new Thread(new MyOwnRunnableClass(sensorEvent,username));
t.start();
}发布于 2019-11-11 03:10:07
祝好运
发布于 2019-11-11 05:14:36
第二种方法:你可以在共享偏好中设置上一次时间,并在OnSensorChanged方法中检查当前时间与上次时间的差异是否超过500000设置您的数据。
第一种方式:您可以使用警报管理器每隔500000秒执行一次;
https://stackoverflow.com/questions/58791869
复制相似问题