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

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(使用前将#替换为@)

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

  • 在 Android 上将视频设置为壁纸

    我想知道如何将视频设置为壁纸 否则不可能 我可以将图像设置为壁纸 并且可以构建动态壁纸 但无法将视频设置为壁纸 所以有人知道我该怎么做吗 提前致谢 我认为唯一可以做到的方法是将其合并到 动态壁纸 中 缺点是正如其他人提到的那样 这会严重影响
  • Android:动态更改Listview中的图像

    我有一个由以下 xml 定义的列表视图 我需要切换图像当用户单击任何行时 在运行时会出现在列表中 我怎样才能实现这个目标 非常感谢任何帮助 谢谢 list item xml
  • 如何捕获 Runnable 中的封闭范围

    我正在尝试对 a 进行一系列更新HandlerThread使用下面的类 但我有几个关于变量捕获在 Java 中如何工作的问题 1 Is ret通过引用从封闭范围捕获 2 Does this参考Runnable 或者是从封闭范围捕获的 bon
  • 如何增加 Gradle 守护进程的最大堆大小?

    签署 apk 时 我收到以下消息 To run dex in process the Gradle daemon needs a larger heap It currently has 1024 MB For faster builds
  • 无法禁用 Firestore 中的离线数据

    从我的数据中删除数据后Firestore Database 这需要我的Android app一段时间后才意识到数据已被删除 我认为这是由于自动数据缓存而发生的 我的应用程序与离线使用无关 我想禁用此功能 我已将其添加到我的自定义中Appli
  • 在 Android 上检测已接听的拨出电话

    我知道这个问题已经被问过很多次了 但没有答案 但我仍然希望有人终于解决了这个问题 问题 我有一台运行 Android 2 3 的未 root 设备 我需要创建一项服务 打电话 等待呼叫被应答 接听电话后挂断电话 有超时 和其他许多人一样 我
  • 垂直翻转 Android Canvas

    有没有一种简单的方法可以在 Android 中翻转画布 我似乎找不到任何可以让我垂直翻转它的东西 这样 y 轴上的零就是手机屏幕的底部而不是顶部 如果解决方案不是特别快也没关系 因为我没有对画布进行任何计算密集的操作 提前致谢 Try ca
  • 不同风格的模块文件

    我正在尝试在同一个应用程序中实现播放服务和华为服务 但希望能够按风格配置使用哪一个 每种风格都使用自己的 applicationIdSuffix 因此 对于每种不同的风格 华为插件都会失败 我无法编译 我的应用程序模块包含agconnect
  • 在应用程序之间共享自定义帐户验证器

    我有一个为使用自定义 AccountAuthenticator 的客户端构建的应用程序 它工作得非常好 并且满足了客户的需求 但是 这只是将使用相同身份验证管理器的应用程序集合中的第一个应用程序 这就是我不确定如何继续的地方 我无法知道任何
  • 如何将您的终端与 Android 模拟器连接

    我尝试导航到 android 工具文件夹并输入 adb shell 命令 但它似乎不起作用 我的终端似乎只能识别命令的 adb 部分 并给我一条错误消息 我究竟做错了什么 通过键入列出所有连接的设备adb devices 检查是否列出了任何
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • 为什么 Android 上的免安装应用有两种设置?

    我使用的是运行 Android 11 的 Pixel 3 我发现有 2 种不同的设置可以控制免安装应用的某些方面 设置 应用程序和通知 默认应用程序 打开链接 即时应用程序 即使未安装 也打开应用程序中的链接 切换默认为开 Google P
  • 无法在 Android Studio 中运行项目

    当我尝试在 Android Studio 中运行我的项目时 我收到以下错误消息 Execution failed for task CricHQ dexDebug gt com android ide common internal Log
  • Android Studio错误的含义:未注释的参数覆盖@NonNull参数

    我正在尝试 Android Studio 创建新项目并添加默认值后onSaveInstanceState方法创建 MyActivity 类 当我尝试将代码提交到 Git 时 我收到一个我不明白的奇怪错误 代码是这样的 我得到的错误是这样的
  • Android RxJava 2 JUnit 测试 - android.os.Looper 中的 getMainLooper 未模拟 RuntimeException

    我在尝试为正在使用的演示者运行 JUnit 测试时遇到 RuntimeExceptionobserveOn AndroidSchedulers mainThread 由于它们是纯 JUnit 测试而不是 Android 仪器测试 因此它们无
  • Android 报告“Error=Unable to find Instrumentation info for: ComponentInfo {}”

    stackoverflow 上有很多关于这个问题的主题 问题 例如错误 无法找到以下仪器信息 ComponentInfo https stackoverflow com q 21294945 513413 和其他网站 但使我的问题与其他网站
  • 使用磁场计算旋转矩阵

    在获取旋转矩阵值时它包含public static boolean getRotationMatrix float R float I float gravity float geomagnetic 这里我如何计算float gravity
  • 使用Android Camera API,拍摄照片的方向始终未定义

    我使用相机API 拍摄的照片总是旋转90度 我想旋转它 所以首先我想知道图片的方向 这一点我被卡住了 我总是以两种方式得到未定义的方向 这是代码 Override public void onPictureTaken byte data C
  • 当应用程序从最近的应用程序中滑动时,前台服务会被终止,通知也会被删除

    我有一个foreground service有通知 当应用程序从最近的应用程序托盘中滑出时 服务将被终止 通知也会被删除 这是我的服务的代码VoiceService class Override public IBinder onBind
  • 如何在jetpack compose中删除文本基线下方的空间?

    目前我得到这个 但我想要这样的东西 而且 50 和 min 中的文本也应该与顶部对齐 My code Row verticalAlignment Alignment Bottom Text text 18 color MaterialThe

随机推荐

  • 让 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 传感器侦听器仅在传感器值更改