一种等待传感器数据的方法

2023-12-01

我有一个类,它在启动时启动传感器侦听器。当事件触发时,此侦听器将最新的传感器值写入变量。该类继续执行一些逻辑,并在某个时刻检查此变量并根据值继续操作。

我的问题是,无法保证读取变量时有任何值,因为 Android 传感器侦听器仅在传感器值更改时触发事件(并且不一定在启动后立即触发事件)。

因此,我需要我的应用程序等待事件触发,以便它有数据可以处理(最好有超时,以确保它不会无限期地等待)。

我的问题是,实现这种等待的最佳方法是什么?我是否应该有一个处理程序在继续之前每 X 毫秒检查一次值?我是否应该在侦听器和处理程序之间传递某种消息来告诉它数据何时写入,并且现在可以恢复?还有其他更好的选择吗?

编辑:我应该指出,类逻辑是在 UI 线程上执行的。


我正在使用处理程序来处理完全相同的情况。

Handler handler = new Handler();
handler.post(new Runnable() {

            @Override
            public void run() {
                // TODO Auto-generated method stub
                try {
                    x1.setText(String.valueOf(sensors.getValueAccX()));
        Log.d("Sensors", String.valueOf(sensors.getValueAccZ()));//using persoanl methods that are not shown here
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (Exception e) {
                    Toast.makeText(ClientSideActivity.this,
                            "Server is not running", Toast.LENGTH_LONG).show();
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                // TODO Auto-generated method stub

                handler.postDelayed(this, 100);
            }

        });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一种等待传感器数据的方法 的相关文章

随机推荐

  • 让 Linq 对象变得“脏”的最干净的方法是什么?

    我有一个 Linq To SQL 对象obj类型的MyClass我已经通过我的数据上下文加载了 现在我想强制该对象保存 即使没有字段实际更改 以便保存操作可以在幕后触发一些触发器 让我的数据上下文认为最简单的方法是什么obj是脏的 所以调用
  • 为什么标准 R 中值函数比简单的 C++ 替代函数慢得多?

    我对中位数进行了以下实现C 并将其用于R via Rcpp Rcpp export double median2 std vector
  • iphone -- 将 MKMapPoint 距离转换为米

    假设我有一个由四个 CLLocationCooperative2D 点组成的正方形 这些点的单位为经纬度 我想找到该正方形的面积 以米为单位 我将 CLLocationCooperative2D 点转换为 MKMapPoints 然后找到
  • 在Python中打印CSV的所有行只能运行一次

    我编写了一个非常简单的程序 该程序应该读取 CSV 并打印所有行两次 然而 当我运行该程序时 它第一次打印了所有行 第二次则没有打印任何内容 Code import csv csvfile csv reader open
  • JQuery:如何克隆自动完成字段?

    我正在使用 J rn Zaefferer 的 jquery 自动完成插件 当我克隆自动完成字段时 我似乎不知道如何使其工作 它几乎可以工作 因为当我输入文本时 克隆的自动完成字段会显示选项 但我无法选择项目 起初我以为这是一个浏览器兼容性问
  • 需要一种方法将特定数据从 Firebase Realtime DB 提取到 Google Sheets

    我正在尝试使用 AppS 脚本将 Firebase Realtime DB 数据传输到 Google Sheets 中 我需要一种方法来从数据库中提取 ID 部门和姓氏字符串 同时从下面的日志中接收这些字符串 我使用 childByAuto
  • Mac OS X 上的 Java System.getProperty("user.dir")

    我的桌面上有一个 Mac OS X 10 4 上的应用程序包 我的应用程序查找一个名为 resources 的文件夹 其中保存要显示的文件 与可运行的 JAR 保存在同一位置 我知道应用程序包中也有一个名为 Resources 的文件夹 抱
  • 通过意图传递可序列化对象

    这是我第一次尝试寻求解决我的问题的方法 所以请尽量友善 通过简单的搜索 我在这个网站上找到了许多我处理的问题的解决方案 但我想这次我没有运气 我发现没有什么适合我的问题 所以我结束了问一个新问题 我试图通过意图将对象从一个活动传递到另一个活
  • 简单的 MVC 设置/设计?

    我只是想确保我在构建简单的 MVC 应用程序方面朝着正确的方向前进 MODEL interface Reactor NSObject NSNumber temperature NSString lastInspection NSNumber
  • 递归 - 嵌套数组求和

    我正在尝试对嵌套数组求和 1 2 3 4 5 不使用循环 但我不明白到目前为止我所拥有的有什么问题 function sumItems array let sum 0 array forEach item gt if Array isArr
  • Youtube API 检索直播游戏标题

    我正在尝试使用 Youtube Api 检索直播的游戏标题 我目前正在使用 视频 列表api 但它似乎没有返回此信息 它确实给了我一些主题 ID 但它们并不代表特定的游戏 这些信息可以通过API获取吗 谢谢 检查此回复 我认为它满足您的所有
  • Rails 不检测文件更改并且 config.reload_classes_only_on_change 使服务器太慢

    首先我不知道这是否是一个错误 到目前为止 我一直在 Railsdevelopment rb 环境配置中使用此命令 以便该框检测我的文件的更改 config reload classes only on change false 但现在 使用
  • 我如何知道我的 Config.xml 文件是否在 Magento 中工作?

    我已经创建了一个示例模块 但我不确定它是否 module etc config xml文件正在加载 我确信仅此而已就有问题 有没有办法可以确定该文件是否已加载 免费模块列表module 由我构建 会告诉您系统中安装了哪些模块 并会告诉您您的
  • MVC3 ModelBinding 到带有索引间隙的回传集合

    我的模型上有一个对象集合 我使用 EditFor 函数在视图中渲染这些对象 并且我有一个 EditorTemplate 负责实际渲染每个对象 Html EditorFor model gt model MyObjects 这已经运行良好一段
  • Python f.read 未读取正确的字节数

    我的代码应该读取 4 个字节 但有时只读取 3 个字节 f open test sgy r f seek 99716 AAA f read 4 BBB f read 4 CCC f read 4 print len AAA print le
  • 如何使用 Scala 使用比较器对 DataFrame 进行排序?

    我想使用我自己的比较器根据列对 DataFrame 进行排序 Spark SQL 可以做到这一点吗 例如 假设我有一个 DataFrame 注册为表 MyTable 其中列 Day 其类型为 string id Day 1 Fri 2 Mo
  • GraphQL 中的输入类型有何意义?

    您能否解释一下为什么如果突变的输入参数是对象它应该是输入类型 我认为简单得多 只需重复使用type无需提供身份证 例如 type Sample id String name String input SampleInput name Str
  • 行为:用动态示例编写场景大纲

    小黄瓜 行为Examples Gherkin 语法特点使用示例测试自动化 Feature Scenario Outline tutorial04 Scenario Outline Use Blender with
  • 如何限制列表视图中的复选框选择?

    friends 我想限制 android listivew 中的复选框选择 例如只应选择 3 个复选框 否则它应该给出错误消息 用户可以从列表中选择任意三个复选框 有人指导我如何实现这一目标吗 这是我的适配器 public class Ad
  • 一种等待传感器数据的方法

    我有一个类 它在启动时启动传感器侦听器 当事件触发时 此侦听器将最新的传感器值写入变量 该类继续执行一些逻辑 并在某个时刻检查此变量并根据值继续操作 我的问题是 无法保证读取变量时有任何值 因为 Android 传感器侦听器仅在传感器值更改